项目的基本配置参照
https://blog.csdn.net/weixin_45402151/article/details/115483026
查询单条数据
代码实现
创建User实体类
@ToString
@Data
public class User {
private Integer id;
private String username;
private Integer age;
private Integer score;
}
创建UserMapper接口
public interface UserMapper {
User selectUserById(Integer 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">
<!-- namespace表示命名空间 -->
<mapper namespace="com.mapper.UserMapper">
<select id="selectUserById" parameterType="java.lang.Integer" resultType="user" >
select * from user where id =#{id}
</select>
</mapper>
创建测试类UserTest
@SuppressWarnings({"Duplicates"})
public class UserTest {
public static void main(String[] args) throws IOException {
// 读取配置文件
InputStream configuration = Resources.getResourceAsStream("mybatis-config.xml");
// 得到 SqlSessionFactory 核心类
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(configuration);
// 开始一个 sql 会话
SqlSession session = sqlSessionFactory.openSession();
// 得到 mapper
UserMapper mapper = session.getMapper(UserMapper.class);
// 调用通过用户id查询用户信息的方法
User user = mapper.selectUserById(1);
System.out.println(user);
// 关闭会话
session.close();
}
}
测试结果
查询多条数据
代码实现
UserMapper接口
List<User> selectUserList();
UserMapper.xml文件
<select id="selectUserList" resultType="user" >
select * from user
</select>
测试类
List<User> userList = mapper.selectUserList();
userList.forEach(u -> System.out.println(u));
测试结果
插入数据
代码实现
UserMapper接口
int insertUser(User user);
UserMapper.xml文件
<insert id="insertUser" parameterType="user">
INSERT INTO user VALUES (#{id},#{username},#{age},#{score})
</insert>
测试类
List<User> userList = mapper.selectUserList();
userList.forEach(u -> System.out.println(u));
//调用插入数据的方法
User insertUser = new User();
insertUser.setUsername("沈苏");
insertUser.setAge(22);
insertUser.setScore(600);
mapper.insertUser(insertUser);
List<User> userList2 = mapper.selectUserList();
userList2.forEach(u -> System.out.println(u));
测试结果
查询数据库却发现没有数据添加
这是因为mybatis默认开启了事务管理,所以在数据增删改时我们必须提交事务
在测试类中添加提交代码
// 提交session
session.commit();
重新测试,数据库插入数据成功
更新数据
代码实现
UserMapper接口
int updateUserById(User user);
UserMapper.xml文件
<update id="updateUserById" parameterType="user">
UPDATE user SET age = #{age}, username = #{username}, score = #{score} WHERE id = #{id}
</update>
测试类
//调用更新数据的方法
User user = mapper.selectUserById(6);
System.out.println(user);
user.setScore(900);
mapper.updateUserById(user);
User user1 = mapper.selectUserById(6);
System.out.println(user1);
测试结果
数据库执行前后结果
删除数据
代码实现
UserMapper接口
int deleteUserById(Integer id);
UserMapper.xml文件
<delete id="deleteUserById" parameterType="java.lang.Integer">
delete from user where id =#{id}
</delete>
测试类
List<User> userList = mapper.selectUserList();
userList.forEach(u -> System.out.println(u));
//调用删除数据的方法
mapper.deleteUserById(6);
List<User> userList2 = mapper.selectUserList();
userList2.forEach(u -> System.out.println(u));
测试结果
数据库执行前后结果