本文共 4450 字,大约阅读时间需要 14 分钟。
前一节介绍过如何使用mybatis查询数据库表t_user中的数据,本节介绍如何使用mybatis对数据库表t_user进行crud操作
步骤如下:
1、UserMapper.xml文件内容如下:
insert into t_user( id, username, password )values( #{id}, #{username}, #{password} ) update t_user t set t.username=#{username}, t.password=#{password} where t.id=#{id} delete t.* from t_user t where t.id=#{id}
2、测试
crud测试需要创建session工厂和session.这些步骤都是公用的,可以创建一个工具类,代码如下:
package com.cn.utils;import java.io.IOException;import java.io.Reader;import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;/** * mybatis工具类 * */public class MybatisUtil { /** * 创建sqlSessionFacoty * @throws IOException * */ public static SqlSessionFactory getSqlSessionFactory(){ String resource="mybatis.cfg.xml"; Reader reader=null; SqlSessionFactory sqlSessionFactory=null; try{ //本次不使用类加载器加载配置文件,而是通过 mybatis提供的Resources类加载mybatis的配置文件 reader=Resources.getResourceAsReader(resource); sqlSessionFactory=new SqlSessionFactoryBuilder().build(reader); }catch(Exception e){ e.printStackTrace(); } return sqlSessionFactory; } /** * 得到sqlSession * 适应于:提交事务操作的增加、删除和修改操作的sqlSession获取 * */ public static SqlSession getSqlSession(boolean isAutoCommit){ return getSqlSessionFactory().openSession(isAutoCommit); } /** * 得到sqlSession * 适用于查询方式的获得sqlSession * */ public static SqlSession getSqlSession(){ return getSqlSessionFactory().openSession(); } }
2.1、通过用户id查询用户测试代码如下:
package com.cn.test;import org.apache.ibatis.session.SqlSession;import com.cn.utils.MybatisUtil;import com.cn.vo.UserVO;/** * 通过id查询用户测试 * */public class SelectUserById { public static void main(String[] args) { //1.通过MybatisUtil工具类获取sqlSession SqlSession sqlSession=MybatisUtil.getSqlSession(); //2.映射sql的标识字符串 String statement="com.cn.mapping.UserMapper.selectUser"; //3.执行查询操作 UserVO userVO=sqlSession.selectOne(statement,1); //4.打印结果 System.out.println(userVO.toString()); }}
2.2、查询所有用户,测试代码如下:
package com.cn.test;import java.util.List;import org.apache.ibatis.session.SqlSession;import com.cn.utils.MybatisUtil;import com.cn.vo.UserVO;/** * 查询所有用户测试 * */public class SelectAllUser { public static void main(String[] args) { //1.通过mybatis工具类获得sqlSession SqlSession sqlSession=MybatisUtil.getSqlSession(); //2.映射sql的标识字符串 String statement="com.cn.mapping.UserMapper.selectAllUser"; //3.执行session操作 ListuserList=sqlSession.selectList(statement); //4.循环遍历结果集 for(UserVO userVO:userList){ System.out.println(userVO.toString()); } }}
2.3、新增用户,测试代码如下:
package com.cn.test;import org.apache.ibatis.session.SqlSession;import com.cn.utils.MybatisUtil;import com.cn.vo.UserVO;public class InsertUser { public static void main(String[] args) { //1.工具类获得sqlSession SqlSession session=MybatisUtil.getSqlSession(true); //2.sql映射标识字符串 String statement="com.cn.mapping.UserMapper.insertUser"; //3.执行session操作 UserVO userVO=new UserVO(1101,"Rise","123456"); int result=session.insert(statement,userVO); System.out.println(result); }}
2.4、删除用户,测试代码如下:
package com.cn.test;import org.apache.ibatis.session.SqlSession;import com.cn.utils.MybatisUtil;/** * 删除用户 * */public class DeleteUser { public static void main(String[] args) { //1.获得sqlSession SqlSession session=MybatisUtil.getSqlSession(true); //2.执行sql映射标识的字符串 String statement="com.cn.mapping.UserMapper.deleteUser"; //3.执行session操作 int result=session.delete(statement, 1101); System.out.println(result); }}
2.5、修改用户,测试代码如下:
package com.cn.test;import org.apache.ibatis.session.SqlSession;import com.cn.utils.MybatisUtil;import com.cn.vo.UserVO;/** * 修改用户测试 * */public class UpdateUser { public static void main(String[] args) { //1.获得sqlSession SqlSession session=MybatisUtil.getSqlSession(true); //2.执行sql映射的标识字符串 String statement="com.cn.mapping.UserMapper.updateUser"; //3.执行session操作 UserVO userVO=new UserVO(); userVO.setId(1); userVO.setUsername("admin"); userVO.setPassword("123456"); int result=session.update(statement, userVO); System.out.println(result); }}
转载地址:http://uquii.baihongyu.com/