【MyBatis框架】实现增删改查功能
CSDN话题挑战赛第2期
参赛话题:学习笔记
目录
- 1. MyBatis流程回顾
- 2. 工具类的构建
- 3. 相关各类配置
- 4. 增加数据功能
- 5. 删除数据功能
- 6. 修改数据功能
- 7. 查询数据功能
1. MyBatis流程回顾
上一篇中我们已经了解了MyBatis框架的基本实现,现在先来回顾一下其实现流程
2. 工具类的构建
观察上述步骤,我们发现每次都需要通过SqlSessionFactoryBuilder
构建SqlSessionFactory
然后再获得SqlSession
对象,这些步骤都是相同的,我们可以把它们封装成为一个工具类MybatisUtils
package com.zxy.mybatis.Utils;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.io.IOException;
import java.io.InputStream;
public class MybatisUtils {
public static SqlSession getSqlSession() throws IOException {
//读取MyBatis的核心配置文件
InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
//创建SqlSessionFactoryBuilder对象
SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new
SqlSessionFactoryBuilder();
//通过核心配置文件所对应的字节输入流创建工厂类SqlSessionFactory,生产SqlSession对象
SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(is);
//创建SqlSession对象,此时通过SqlSession对象所操作的sql都必须手动提交或回滚事务
//SqlSession sqlSession = sqlSessionFactory.openSession();
//创建SqlSession对象,此时通过SqlSession对象所操作的sql都会自动提交
SqlSession sqlSession = sqlSessionFactory.openSession(true);
return sqlSession;
}
}
3. 相关各类配置
- 实体类User
package com.zxy.mybatis.pojo;
public class User {
private Integer id;
private String username;
private String psd;
private Integer age;
private String gender;
private String email;
public User() {
}
public User(Integer id, String username, String psd, Integer age, String gender, String email) {
this.id = id;
this.username = username;
this.psd= psd;
this.age = age;
this.gender = gender;
this.email = email;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", username='" + username + '\'' +
", psd='" + psd+ '\'' +
", age=" + age +
", gender='" + gender + '\'' +
", email='" + email + '\'' +
'}';
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPsd() {
return psd;
}
public void setPsd(String psd) {
this.psd= psd;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
- UserMapper
package com.zxy.mybatis.mapper;
import com.zxy.mybatis.pojo.User;
import java.util.List;
public interface UserMapper {
/**
* 添加用户信息
*/
int insertUser();
int deleteUser();
int updateUser();
User getUserById();
}
- 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.zxy.mybatis.mapper.UserMapper">
<!--int insertUser();-->
<insert id="insertUser">
insert into t_user values(null,'bobo','123456',23,'男','12345@qq.com')
</insert>
<!--int deleteUser();-->
<delete id="deleteUser" >
delete from t_user where id = 1
</delete>
<!--int updateUser();-->
<update id="updateUser" >
update t_user set username='zxy',password='123' where id = 6
</update>
<!--User getUserById();-->
<select id="getUserById" resultType="com.zxy.mybatis.pojo.User">
select * from t_user where id = 1
</select>
</mapper>
4. 增加数据功能
首先在UserMapper中写入方法
int insertUser();
配置Mapper接口
<!--int insertUser();-->
<insert id="insertUser">
insert into t_user values(null,'bobo','123456',23,'男','12345@qq.com')
</insert>
执行方法测试
查看结果
返回值表明已经成功,我们查看数据库进一步确认
加入成功
5. 删除数据功能
首先在UserMapper中写入方法
配置Mapper接口
<!--int deleteUser();-->
<delete id="deleteUser" >
delete from t_user where id = 9
</delete>
执行方法测试
结果如下
查看数据库是否成功
可以发现id为9的已经被删除
6. 修改数据功能
首先在UserMapper中写入方法
配置UserMapper
<!--int updateUser();-->
<update id="updateUser" >
update t_user set username='zxy',password='123' where id = 7
</update>
执行方法测试
结果如下
查看数据库
id为6的那个数据确实已经发生改变
7. 查询数据功能
首先在UserMapper中写入方法
配置UserMapper
<!--User getUserById();-->
<select id="getUserById" resultType="com.zxy.mybatis.pojo.User">
select * from t_user where id = 7
</select>
执行方法测试
结果如下,表明查询成功