2、Mybatis的CRUD
1、select
步骤
-
在Mapper接口中添加方法
List<User> getByAge(int age);
-
在Mapper.xml中添加select标签
<select id="getByAge" resultType="com.myboy.domain.User"> select * from user where age = #{age} </select>
-
测试
@Before public void before() { sqlSession = MybatisUtil.getSqlSession(); mapper = sqlSession.getMapper(UserMapper.class); } @Test public void testGetByAge() { List<User> users = mapper.getByAge(20); for (User user : users) { System.out.println(user); } } @After public void after() { sqlSession.close(); }
2、insert
-
在Mapper.xml添加insert标签
<insert id="insertUser1" parameterType="com.myboy.domain.User"> insert into user values(#{name},#{age},#{gender}) </insert>
3、update
-
在Mapper.xml添加insert标签
<insert id="insertUser1" parameterType="com.myboy.domain.User"> insert into user values(#{name},#{age},#{gender}) </insert>
4、delete
-
在Mapper.xml添加insert标签
- int类型可以省略parameterType属性
<delete id="deleteByAge" parameterType="int"> delete from user where age=#{age} </delete>
5、万能的map
好处:
- xml中添加多个参数时可以简化操作
-
在Mapper接口类中添加方法
void insertUser2(Map<String,Object> map);
-
在Mapper.xml中添加insert标签
- parameterType值为map
- values中的值为map的key
<insert id="insertUser2" parameterType="map"> insert into user(name,age,gender) values(#{name},#{age},#{gender}) </insert>
-
测试
@Test public void testInsert2() { HashMap<String, Object> map = new HashMap<String, Object>(); map.put("name","赵六"); map.put("age",33); map.put("gender","男"); mapper.insertUser2(map); sqlSession.commit(); }
6、模糊查询
-
在Mapper接口类中添加方法
void insertUser2(Map<String,Object> map);
-
在Mapper.xml中添加insert标签
- parameterType值为map
- values中的值为map的key
<insert id="insertUser2" parameterType="map"> insert into user(name,age,gender) values(#{name},#{age},#{gender}) </insert>
-
测试
@Test public void testByName(){ List<User> users = mapper.findByName("%张%"); for (User user : users) { System.out.println(user); } }
7、总结
- 在Mapper.xml中,如果sql中只需传入一个基本数据类型或String类型,ParameterType属性可以省略