博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mybatis(3)---使用mybatis对表进行CRUD操作
阅读量:4088 次
发布时间:2019-05-25

本文共 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操作		List
userList=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/

你可能感兴趣的文章
Git报错: OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.com:443
查看>>
Java学习笔记--带有验证码的登录案例
查看>>
数据结构与算法学习笔记(1)--数组
查看>>
jdk8和jdk11不能随意切换的问题
查看>>
2020-12-29
查看>>
2021-01-16
查看>>
AndroidStudio学习(二)-模拟小相册
查看>>
Python代码打开本地.mp4格式文件
查看>>
MySql服务无法启动:2003 can't connect to mysql 10061
查看>>
选择排序
查看>>
递归和快速
查看>>
分治算法(一)二分搜索技术
查看>>
分治算法(二)合并排序
查看>>
分治算法(三)快速排序
查看>>
Flutter底部溢出
查看>>
Flutter踩坑之url_launcher
查看>>
跳转到另一个页面之后取消后退按钮
查看>>
flutter踩坑高德地图amap_base
查看>>
flutter极光推送
查看>>
jvm崩溃并输出 hs_err_pidxxxx.log文件异常原因
查看>>