一、目录结构
二、代码
1、UserDao
1 package cn.bijian.dao; 2 3 import cn.bijian.model.User; 4 import org.apache.ibatis.annotations.Select; 5 6 import java.util.List; 7 8 public interface UserDao { 9 /* 10 查询所有User 11 */ 12 // @Select("select * from user") 13 List<User> findAll(); 14 /* 15 根据id查User 16 */ 17 User findById(Integer id); 18 /* 19 保存用户 20 */ 21 int saveUser(User user); 22 /* 23 更新用户 24 */ 25 int updateUser(User user); 26 /* 27 删除用户 28 */ 29 int deleteUser(Integer id); 30 /* 31 模糊查询用户 32 */ 33 List<User> findByName(String username); 34 /* 35 查询总记录条数 36 */ 37 int findTotal(); 38 }
2、UserDao.xml
1 <?xml version="1.0" encoding="UTF-8" ?> 2 <!DOCTYPE mapper 3 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 4 "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> 5 6 <mapper namespace="cn.bijian.dao.UserDao"> 7 <select id="findAll" resultType="cn.bijian.model.User"> 8 select * from User; 9 </select> 10 11 <select id="findById" parameterType="int" resultType="cn.bijian.model.User"> 12 select * from User where id = #{id} 13 </select> 14 15 <insert id="saveUser" parameterType="cn.bijian.model.User"> 16 insert into user(username,birthday,sex,address) values (#{username},#{birthday},#{sex},#{address}) 17 <selectKey keyColumn="id" keyProperty="id" resultType="int">select last_insert_id();</selectKey> 18 </insert> 19 20 <update id="updateUser" parameterType="cn.bijian.model.User"> 21 update user set username=#{username},birthday=#{birthday},sex=#{sex},address=#{address} where id=#{id} 22 </update> 23 24 <delete id="deleteUser" parameterType="int"> 25 delete from user where id=#{id} 26 </delete> 27 28 <select id="findByName" parameterType="string" resultType="cn.bijian.model.User"> 29 select * from user where username like #{username} 30 <!--select * from user where username like '%${value}%'--> 31 </select> 32 33 <select id="findTotal" resultType="int"> 34 select count(*) from user; 35 </select> 36 </mapper>
3、MybatisCURDTest
1 package cn.bijian.test; 2 3 import cn.bijian.dao.UserDao; 4 import cn.bijian.model.User; 5 import org.apache.ibatis.io.Resources; 6 import org.apache.ibatis.session.SqlSession; 7 import org.apache.ibatis.session.SqlSessionFactory; 8 import org.apache.ibatis.session.SqlSessionFactoryBuilder; 9 import org.junit.After; 10 import org.junit.Before; 11 import org.junit.Test; 12 13 import java.io.IOException; 14 import java.io.InputStream; 15 import java.util.Date; 16 import java.util.List; 17 18 public class MybatisCURDTest { 19 private InputStream in; 20 private SqlSessionFactory sessionFactory; 21 private SqlSession session; 22 private UserDao userDao; 23 24 @Test 25 public void testFindById(){ 26 User user = userDao.findById(43); 27 System.out.println(user); 28 } 29 30 @Test 31 public void testSaveUser(){ 32 User user = new User(); 33 user.setUsername("李四"); 34 user.setBirthday(new Date()); 35 user.setSex("男"); 36 user.setAddress("兰州"); 37 userDao.saveUser(user); 38 Integer id = user.getId(); 39 System.out.println(id); 40 } 41 42 @Test 43 public void testUpdateUser(){ 44 User user = userDao.findById(64); 45 user.setAddress("兰州123"); 46 int res = userDao.updateUser(user); 47 System.out.println(res); 48 } 49 50 @Test 51 public void testDeleteUser(){ 52 int res = userDao.deleteUser(64); 53 System.out.println(res); 54 } 55 56 @Test 57 public void testFindByName(){ 58 List<User> users = userDao.findByName("%王%"); 59 // List<User> users = userDao.findByName("王"); 60 for (User user:users) { 61 System.out.println(user); 62 } 63 } 64 65 @Test 66 public void testFindTotal(){ 67 int total = userDao.findTotal(); 68 System.out.println(total); 69 } 70 71 @Before 72 public void init() throws IOException { 73 in = Resources.getResourceAsStream("SqlMapConfig.xml"); 74 SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder(); 75 sessionFactory = builder.build(in); 76 session = sessionFactory.openSession(); 77 userDao = session.getMapper(UserDao.class); 78 } 79 80 @After 81 public void destroy() throws IOException { 82 session.commit(); 83 session.close(); 84 in.close(); 85 } 86 }