先来简单回顾一下以前的准备步骤:java
数据库
,并加入数据Maven
项目依赖
Pojo
类和Dao
类Mybatis
工具类mybatis.xml
完成以上步骤以后,就能够进行测试了。git
具体能够查看本博客文章:Mybatis-01
sql
查询
操做数据库
public interface UserDao { //经过id查user public List<user> getUserByID(int id); }
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.Dao.UserDao"> <select id="getUserByID" resultType="pojo.user" parameterType="int"> select * from mybatis.user where id=#{id} </select> </mapper>
public class Test { @org.junit.Test public void test(){ //第一步:得到SqlSession对象 SqlSession sqlSession = mybatis_util.getSqlSession(); //执行SQL UserDao mapper = sqlSession.getMapper(UserDao.class); List<user> userList = mapper.getUserByID(1); //查询id=1的user for (user user : userList) { System.out.println(user); } //关闭SqlSession sqlSession.close(); } }
查看id=1
的user:mybatis
插入
操做app
public interface UserDao { public int insertuser(user user); }
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.Dao.UserDao"> <insert id="insertuser" parameterType="pojo.user"> insert into mybatis.user(id,name,pwd) values (#{id},#{name},#{pwd}) </insert> </mapper>
public class Test { @org.junit.Test public void test(){ //第一步:得到SqlSession对象 SqlSession sqlSession = mybatis_util.getSqlSession(); //执行SQL UserDao mapper = sqlSession.getMapper(UserDao.class); user user1 = new user(4, "李", "1456"); int i = mapper.insertuser(user1); System.out.println(i); sqlSession.commit(); //不一样于查询 增删改都须要提交事务 List<user> userList = mapper.getUserList(); for (user user : userList) { System.out.println(user); } //关闭SqlSession sqlSession.close(); } }
建立一个新user
,id:一、name:李、pwd:1456,经过sql操做,加入数据库。工具
i
输出1
,说明成功。测试
最后输出所有,查看数据库中所有user
。ui
public interface UserDao { public int deluser(int id); }
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.Dao.UserDao"> <delete id="deluser" parameterType="int"> delete from mybatis.user where id = #{id} </delete> </mapper>
public class Test { @org.junit.Test public void test(){ //第一步:得到SqlSession对象 SqlSession sqlSession = mybatis_util.getSqlSession(); //执行SQL UserDao mapper = sqlSession.getMapper(UserDao.class); int i = mapper.deluser(2); System.out.println(i); sqlSession.commit(); //不一样于查询 增删改都须要提交事务 List<user> userList = mapper.getUserList(); for (user user : userList) { System.out.println(user); } //关闭SqlSession sqlSession.close(); } }
删除id=2
的user。spa
i
输出1
,说明成功。
最后输出所有,查看数据库中所有user
。
public interface UserDao { public int updateuser(user user); }
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.Dao.UserDao"> <update id="updateuser" parameterType="pojo.user"> update mybatis.user set name = #{name},pwd=#{pwd} where id = #{id} </update> </mapper>
public class Test { @org.junit.Test public void test(){ //第一步:得到SqlSession对象 SqlSession sqlSession = mybatis_util.getSqlSession(); //执行SQL UserDao mapper = sqlSession.getMapper(UserDao.class); user user1 = new user(4, "李1", "145600"); int i = mapper.updateuser(user1); System.out.println(i); sqlSession.commit(); List<user> userList = mapper.getUserList(); for (user user : userList) { System.out.println(user); } //关闭SqlSession sqlSession.close(); } }
更新id=4
的user。
i
输出1
,说明成功。
最后输出所有,查看数据库中所有user
。
标签
不要匹配错误,对应的id
、parameterType
、resultType
不能够错误mybatis配置文件
必定要绑定mapper
符合规范
手动加入
资源文件
未打开,配置文件中加入<build></build>
内容实体类,或者数据库中的表,字段或者参数过多,咱们应当考虑使用Map
即:parameterType="map"
insert
操做进行举例:
public interface UserDao { public int insertuser(Map<String,Object> map); }
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.Dao.UserDao"> <insert id="insertuser" parameterType="map"> insert into mybatis.user(id,name,pwd) values (#{id},#{name},#{pwd}) </insert> </mapper>
public class Test { @org.junit.Test public void test(){ //第一步:得到SqlSession对象 SqlSession sqlSession = mybatis_util.getSqlSession(); //执行SQL UserDao mapper = sqlSession.getMapper(UserDao.class); HashMap<String, Object> map = new HashMap<String, Object>(); map.put("id",5); map.put("name","map"); map.put("pwd","1111"); int i = mapper.insertuser(map); System.out.println(i); sqlSession.commit(); List<user> userList = mapper.getUserList(); for (user user : userList) { System.out.println(user); } //关闭SqlSession sqlSession.close(); } }
建立一个Map
,在其中加入对应的数据
,经过sql操做,加入数据库。
i
输出1
,说明成功。
最后输出所有,查看数据库中所有user
。
在此,不进行具体操做,再次举例两中方式:
该功能只是更改sql语句
,并在传值时加入%
便可。
sql语句:
<select id="getUserByID" resultType="pojo.user" parameterType="string"> select * from mybatis.user where name like #{name} </select>
Test类:
List<user> userList = mapper.getUserByName("%张%");
该功能只是更改sql语句
,在语句中加入%
,并正常传值时便可。
sql语句:
<select id="getUserByID" resultType="pojo.user" parameterType="string"> select * from mybatis.user where name like "%"#{name}"%" </select>
Test类:
List<user> userList = mapper.getUserByName("张");
上述两种操做,均可以查出对姓名中含有张
的进行查询。
%
的不一样含义:
abc结尾
的全部字符串;abc 开头
的全部字符串;全部包含abc
的字符串;