本小节主要是介绍怎么通过Mybatis进行增删改查。首先为了统一Mybatis中的命名规范需要修改我们文章一中介绍的namespace文件名。(之前没有改名字是希望读者能够能从最开始的JDBC过渡到Mybatis,给一个适应过程)
-
修改文件名
-
修改类名
-
修改UserMapper.xml中的namespace路径
-
同时需要修改测试类的名字和对应类
做完这些我们就可以开始现在的学习
1.CRUD(增删改查) 1.1 namespacenamespace中的包名要和Dao/mapper接口的包名一致!
1.2 select
选择,查询语句;
- 在UserMapper类中:
-
//查询全部用户 List
getUserList(); //根据ID查询用户 User getUserById(int id);
- 在UserMapper.xml文件中:
-
id:就是对应的namespace中的方法名;比如:
-
resultType:Sql语句执行的返回值; 比如:
-
parameterType: Sql语句执行是传递参数的类型;比如:
-
添写Test类:UserMapperTest类中:
@Test public void getUserById(){ //第一步,获取SqlSession对象 SqlSession sqlSession = MybatisUtils.getSqlSession(); try { //方式一:getMapper UserMapper userMapper = sqlSession.getMapper(UserMapper.class); User user = userMapper.getUserById(1); System.out.println(user); }catch (Exception e){ e.printStackTrace(); }finally { //关闭SqlSession sqlSession.close(); } }
1.3 insert
增加语句;
-
在UserMapper类中:
//insert一个用户 int addUser(User user);
-
在UserMapper.xml文件中:
-
id:就是对应的namespace中的方法名;比如:
-
resultType:Sql语句执行的返回值; insert不用设置返回类型,比如:
-
parameterType: Sql语句执行是传递参数的类型;比如:
insert into mybatis.user (id, name, pwd) values (#{id}, #{name}, #{pwd})
-
添写Test类:UserMapperTest类中:(注意:一定要加 sqlSession.commit()):
@Test public void addUser(){ SqlSession sqlSession = MybatisUtils.getSqlSession(); UserMapper mapper = sqlSession.getMapper(UserMapper.class); int res = mapper.addUser(new User(4, "王五", "123456")); if (res > 0){ System.out.println("插入成功"); } //提交事务,这里一定要写不写数据库不会更新 sqlSession.commit(); sqlSession.close(); }
1.4 update
更新语句;
-
在UserMapper类中:
//修改用户 int updateUser(User user);
-
在UserMapper.xml文件中:
-
id:就是对应的namespace中的方法名;比如:
-
resultType:Sql语句执行的返回值; update不用设置返回类型,比如:
-
parameterType: Sql语句执行是传递参数的类型;比如:
update mybatis.user set name = #{name}, pwd = #{pwd} where id = #{id}
-
添写Test类:UserMapperTest类中:(注意:一定要加 sqlSession.commit()):
@Test public void updateUser(){ SqlSession sqlSession = MybatisUtils.getSqlSession(); UserMapper mapper = sqlSession.getMapper(UserMapper.class); int res = mapper.updateUser(new User(4 , "王五", "654321")); if (res > 0){ System.out.println("更新成功!"); } //提交事务 sqlSession.commit(); sqlSession.close(); }
1.5delete
删除语句;
-
在UserMapper类中:
//删除一个用户 int deletUser(int id);
-
在UserMapper.xml文件中:
-
id:就是对应的namespace中的方法名;比如:
-
resultType:Sql语句执行的返回值; delete不用设置返回类型,比如:
-
parameterType: Sql语句执行是传递参数的类型;比如:
delete from mybatis.user where id = #{id}
-
添写Test类:UserMapperTest类中:(注意:一定要加 sqlSession.commit()):
@Test public void deletUser(){ SqlSession sqlSession = MybatisUtils.getSqlSession(); UserMapper mapper = sqlSession.getMapper(UserMapper.class); int res = mapper.deletUser(4); if (res > 0){ System.out.println("删除成功"); } sqlSession.commit(); sqlSession.close(); }
2.总体代码(需要整体代码在这!!!)
-
UserMapper类:
import com.szy.pojo.User; import java.util.List; public interface UserMapper { //查询全部用户 ListgetUserList(); //根据ID查询用户 User getUserById(int id); //增加一个用户 int addUser(User user); //修改用户 int updateUser(User user); //删除一个用户 int deletUser(int id); } -
UserMapper.xml:
-
UserMapperTest类:
import com.szy.pojo.User; import com.szy.utils.MybatisUtils; import org.apache.ibatis.session.SqlSession; import org.junit.Test; import java.util.List; public class UserMapperTest { @Test public void test(){ //第一步,获取SqlSession对象 SqlSession sqlSession = MybatisUtils.getSqlSession(); try { //方式一:getMapper UserMapper userMapper = sqlSession.getMapper(UserMapper.class); ListuserList = userMapper.getUserList(); for (User user : userList){ System.out.println(user); } }catch (Exception e){ e.printStackTrace(); }finally { //关闭SqlSession sqlSession.close(); } } @Test public void getUserById(){ //第一步,获取SqlSession对象 SqlSession sqlSession = MybatisUtils.getSqlSession(); try { //方式一:getMapper UserMapper userMapper = sqlSession.getMapper(UserMapper.class); User user = userMapper.getUserById(1); System.out.println(user); }catch (Exception e){ e.printStackTrace(); }finally { //关闭SqlSession sqlSession.close(); } } @Test public void addUser(){ SqlSession sqlSession = MybatisUtils.getSqlSession(); UserMapper mapper = sqlSession.getMapper(UserMapper.class); int res = mapper.addUser(new User(4, "王五", "123456")); if (res > 0){ System.out.println("插入成功"); } //提交事务 sqlSession.commit(); sqlSession.close(); } @Test public void updateUser(){ SqlSession sqlSession = MybatisUtils.getSqlSession(); UserMapper mapper = sqlSession.getMapper(UserMapper.class); int res = mapper.updateUser(new User(4 , "王五", "654321")); if (res > 0){ System.out.println("更新成功!"); } //提交事务 sqlSession.commit(); sqlSession.close(); } @Test public void deletUser(){ SqlSession sqlSession = MybatisUtils.getSqlSession(); UserMapper mapper = sqlSession.getMapper(UserMapper.class); int res = mapper.deletUser(4); if (res > 0){ System.out.println("删除成功"); } sqlSession.commit(); sqlSession.close(); } }
本文章是作者得学习心得,后续将持续更新Mybatis内容,学习时间短,内容浅,有错希望订正包涵,欢迎大家共同探讨



