Mybatis数据库的增删改查

准备数据

在数据库中准备以下数据

#删除mybatis_demo数据库
drop database if exists mybatis_demo;
# 创建mybatis_demo数据库
create database mybatis_demo;
# 使用mybatis_demo数据库
use mybatis_demo;
# 创建account表Proxy Pattern
create table user (
id int auto_increment primary key,
username varchar(20),
age int,
score int
);
# 新增数据
insert into user (id, username, age, score) values
(1,'peter', 18, 100), (2,'pedro', 24, 200),
(3,'jerry', 28, 500), (4,'mike', 12, 300),
(5,'tom', 27, 1000);

新建如下图框架的项目mybatis-operate-yuyongqing。
在这里插入图片描述

代码

1、User.java

package entity;

public class User {
private Integer id;
private String username;
private Integer age;
private Integer score;

// getter&setter方法
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 Integer getAge() {
    return age;}

public void setAge(Integer age) {
    this.age = age;}

public Integer getScore() {
    return score;  }

public void setScore(Integer score) {
    this.score = score; }

// toString方法
@Override
public String toString() {
    return "User{" +
            "id=" + id +
            ", username='" + username + '\'' +
            ", age=" + age +
            ", score=" + score +
            '}';
  }
}

2、UserDao.java

package dao;

public interface UserDao {
/**
 * 通过用户id查询用户信息
 *
 * @param id
 * @return
 */
User selectUserById(Integer id);
}

3、UserDao.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="dao.UserDao">
<select id="selectUserById" resultType="entity.User">
    SELECT * FROM user WHERE id = #{id}
</select>
</mapper>

UserTest.java

@SuppressWarnings({"Duplicates"})
public class UserTest {
public static void main(String[] args) throws IOException, SQLException {
    // 读取配置文件
    InputStream configuration = Resources.getResourceAsStream("mybatis-config.xml");
    // 得到 SqlSessionFactory 核心类
    SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(configuration);
    // 开始一个 sql 会话
    SqlSession session = sqlSessionFactory.openSession();
    // 得到 Dao
    UserDao dao = session.getMapper(UserDao.class);
    // 调用通过用户id查询用户信息的方法
    User user = dao.selectUserById(1);
    System.out.println(user);
    // 关闭会话
    session.close();
    }
 }

运行结果

在这里插入图片描述

1、 UserDao.xml

在这里插入图片描述

2、UserDao.java

在这里插入图片描述

3、UserTest.java

   // 调用查询所有用户信息的方法
List<User> userList = mapper.selectUserList();
for(int i=1;i<userList.size();i++){
 System.out.print(userList.get(i));
 }

运行

运行结果如图
在这里插入图片描述

1、UserDao.java

/**
* 新增用户信息
*
* @param user
 * @return
 */
int insertUser(User user);

2、UserDao.xml

<insert id="insertUser" parameterType="entity.User">
INSERT INTO user VALUES (#{id},#{username},#{age},#{score})
</insert>

3、UserTest.java

// 调用查询所有用户信息的方法
List<User> userList = mapper.selectUserList();
for(int i=1;i<userList.size();i++){
System.out.println(userList.get(i));
}
// 创建一个要新增的对象并赋值
User insertUser = new User();
insertUser.setId(6);
insertUser.setUsername("anne");
insertUser.setAge(18);
insertUser.setScore(600);

运行结果

在这里插入图片描述
数据库刷新看到新增了一个第6条id
在这里插入图片描述

1、UserDao.java

 /**
 * 修改用户信息
*
 * @param user
 * @return
*/
int updateUserById(User user);

2、UserDao.xml

 <update id="updateUserById" parameterType="entity.User">
UPDATE user SET
age = #{age},
username = #{username},
score = #{score}
WHERE id = #{id}
</update>

3、UserTest.java

 // 调用通过用户id查询用户信息的方法
    User userBefore = mapper.selectUserById(6);
    System.out.println(userBefore);
// 把成绩改为900
    userBefore.setScore(900);
// 调用修改用户信息的方法
    mapper.updateUserById(userBefore);
// 调用通过用户id查询用户信息的方法
    User userAfter = mapper.selectUserById(6);
    System.out.println(userAfter);

运行结果

在这里插入图片描述
在这里插入图片描述

1、UserDao.java

 /**
 * 删除用户信息
 *
 * @param id
 * @return
 */
int deleteUserById(Integer id);

2、UserDao.xml

 <delete id="deleteUserById">
DELETE FROM user WHERE id = #{id}
 </delete>

3、UserTest.java

 // 调用删除用户信息的方法
    int count = mapper.deleteUserById(6);
// 调用查询所有用户信息的方法
    List<User> userListAfter = mapper.selectUserList();
    for(int i=1;i<userList.size();i++) {
        System.out.println(userList.get(i));
    }
    // 提交session
    session.commit();
    // 关闭会话
    session.close();

运行结果

在这里插入图片描述
数据库中
在这里插入图片描述
删除后
在这里插入图片描述

每次新增数据只能运行一次,再次运行会报错。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ai清

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值