MyBatis(二)对表执行CRUD操作
来源:互联网 发布:淘宝神器返利是真的吗 编辑:程序博客网 时间:2024/06/07 08:08
上一篇博文MyBatis(一配置文件),我们讲了如何配置MyBatis配置文件,算是对MyBatis有一个初步的入门了,今天讲解一下如何使用MyBatis对t_user表执行CRUD操作。本文中使用到的测试环境是上一篇博文中的测试环境。
使用MyBatis对表执行CRUD操作
1、创建数据库,新建一个t_user表,并添加数据
SQL脚本如下:
create database db_user;use db_user;CREATE TABLE t_user(usre_id INT PRIMARY KEY AUTO_INCREMENT, user_name VARCHAR(20), user_age INT);INSERT INTO t_user(user_name, user_age) VALUES('张三', 21);INSERT INTO t_user(user_name, user_age) VALUES('李四', 22);INSERT INTO t_user(user_name, user_age) VALUES('王五', 23);
2、新建工具类,用于获取SqlSession会话
public class DBUtil { /** * 每个数据库对应一个SqlSessionFactory */ private static SqlSessionFactory sqlSessionFactory; /** * 1、静态块初始化,通过字节输入流读取配置文件 */ static { InputStream is=null; try { is=Resources.getResourceAsStream("sqlMapConfig.xml"); /** * 2、获得SqlSessionFactory */ sqlSessionFactory=new SqlSessionFactoryBuilder().build(is); } catch (IOException e) { e.printStackTrace(); } } /** * 3、通过SqlSessionFactory获得SqlSession会话 */ public static SqlSession getsqlsession() { return sqlSessionFactory.openSession(); }}
3、新建实体类:User
public class User { private int userId; //用户ID private String userName; //用户名 private int userAge; //密码 public int getUserId() { return userId; } public void setUserId(int userId) { this.userId = userId; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public int getUserAge() { return userAge; } public void setUserAge(int userAge) { this.userAge = userAge; } @Override public String toString() { return "User [userId=" + userId + ", userName=" + userName + ", userAge=" + userAge + "]"; }}
4、创建一个mapper包,专门用于存放定义操作user表的UserMapper接口和sql映射文件UserMapper.xml,如下图所示:
UserMapper接口:用于定义CRUD操作的方法
public interface UserMapper { /** * 根据ID查询单条用户信息 * @param id 用户ID * @return User对象 */ public User getUserInfoById(int id); /** * 添加一条用户信息 * @param name 用户名 * @param age 用户年龄 * @return 受影响行数,1 添加成功 */ public int addUser(@Param("name")String name,@Param("age")int age); /** * 根据ID删除用户 * @param id 用户ID * @return 受影响行数,1 删除成功 */ public int delUserById(int id); /** * 根据ID修改用户信息 * @param name 修改的用户名 * @param id 需要修改用户的ID * @return 受影响行数,1 修改成功 */ public int updateUserByID(@Param("name")String name,@Param("id")int id);}
UserMapper.xml:用于映射实体类和数据库之间的关系
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapper PUBLIC "-//mybatis.org/DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" ><mapper namespace="com.zh.mapper.UserMapper"><resultMap type="User" id="userInfo"> <id property="userId" column="user_id" javaType="int"></id> <result property="userName" column="user_name" javaType="java.lang.String"/> <result property="userAge" column="user_age" javaType="int"></result></resultMap><!-- 查询单条用户信息 ,id为Mapper接口的方法名,--><select id="getUserInfoById" resultMap="userInfo"> select * from t_user where user_id=#{id}</select><!-- 添加用户 --><insert id="addUser"> insert into t_user(user_name,user_age) VALUES(#{name},#{age})</insert><!-- 根据ID删除用户 --><delete id="delUserById"> delete from t_user where user_id=#{id}</delete><!-- 根据ID修改用户信息 --><update id="updateUserByID"> update t_user set user_name=#{name} where user_id=#{id}</update></mapper>
5、创建一个业务层包,用于存放Service接口和ServiceImpl实现类,如下图:
UserService:定义CRUD方法,作用与UserMapper一致
public interface UserService { /** * 根据ID查询单条用户信息 * @param id 用户ID * @return User对象 */ public User getUserInfoById(int id); /** * 添加一条用户信息 * @param name 用户名 * @param age 用户年龄 * @return 受影响行数,1 添加成功 */ public int addUser(String name,int age); /** * 根据ID删除用户 * @param id 用户ID * @return 受影响行数,1 删除成功 */ public int delUserById(int id); /** * 根据ID修改用户信息 * @param name 修改的用户名 * @param id 需要修改用户的ID * @return 受影响行数,1 修改成功 */ public int updateUserByID(String name,int id);
UserServiceImpl:业务实现类,重写UserService接口内的方法:
public class UserServiceImpl implements UserService{ //获取sqlSession对象 SqlSession sqlSession=DBUtil.getsqlsession(); //通过sqlSession对象得到Mapper对象 UserMapper mapper=sqlSession.getMapper(UserMapper.class); @Override public User getUserInfoById(int id) { User user = mapper.getUserInfoById(id); return user; } @Override public int addUser(String name, int age) { int result=mapper.addUser(name, age); //会话提交 sqlSession.commit(); return result; } @Override public int delUserById(int id) { int result = mapper.delUserById(id); sqlSession.commit(); return result; } @Override public int updateUserByID(String name, int id) { int result = mapper.updateUserByID(name, id); sqlSession.commit(); return result; }}
6、创建一个测试类,用于测试方法较多,主方法用于麻烦,这里我们创建一个工具类:
public class UserAction extends TestCase{ //获取业务层对象 private static UserService service=new UserServiceImpl(); /** * 获取单条用户信息 */ public void TestgetUserInfoById() { int id=1; User user=service.getUserInfoById(id); System.out.println(user); } /** * 添加数据 */ public void TestAddUser() { String name="马六"; int age = 24; int result=service.addUser(name, age); if(result==1) { System.out.println("数据添加成功"); }else { System.out.println("数据添加失败"); } } /** * 删除数据 */ public void TestDelUser() { int id=4; int result=service.delUserById(id); if(result==1) { System.out.println("数据删除成功"); }else { System.out.println("数据删除失败"); } } /** * 修改数据 */ public void TestUpdateUser() { String name="羊七"; int id=5; int result=service.updateUserByID(name, id); if(result==1) { System.out.println("数据修改成功"); }else { System.out.println("数据修改失败"); } }}
测试结果如下,控制台打印:
User [userId=1, userName=张三, userAge=21]
数据添加成功
数据删除成功
数据修改成功
阅读全文
0 0
- MyBatis(二)对表执行CRUD操作
- 使用MyBatis对表执行CRUD操作
- MyBatis (2)--对表执行CRUD操作
- 使用MyBatis对表执行CRUD操作
- 使用MyBatis对表执行CRUD操作
- MyBatis对表执行CRUD操作
- MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作
- MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作
- MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作
- MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作
- MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作
- MyBatis学习总结(二)使用MyBatis对表执行CRUD操作
- MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作
- MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作
- MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作
- MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作
- MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作
- MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作
- Python爬虫实战之爬取B站番剧信息(详细过程)
- UVALive 7672
- 1037. 在霍格沃茨找零钱(20)
- HTML
- centos7 虚拟机 连不上网 解决办法 win10 32位操作系统
- MyBatis(二)对表执行CRUD操作
- 基于51单片机的简单方波发生器
- 6.6
- RecyclerView 刷新+加载
- 笨办法学python习题20 函数和文件
- 习题6(6.3)
- [SDUT](2136)数据结构实验之二叉树的建立与遍历 ---- 二叉树
- Ubuntu下Tensorflow加载MNIST数据集(数据下载和读取)
- 图的遍历(广度优先搜索)