当前位置: 首页 > article >正文

使用mybatis -基本的增删改查

目录

项目准备

项目步骤

具体细节

1 主配置文件的处理

2 Test 测试类

3 在  loginMapper 接口中书写 对 数据库操作的方法

4 实体类 pojo 、entity 要和 数据库对应的表的字段 一一对应

5 在 loginMapper.xml 映射文件 书写 具体实现 loginMapper 接口中方法的sql 语句(重点)

查询用户登录信息(select)

单个查询

多个查询(集合存储)

插入 李四登录信息

修改李四 密码

删除 李四的登录信息


项目准备

1 清楚 mybatis是 持久层框架,主要用来 操作数据库,对数据库的存储的数据 进行增删改查 的操作

2 准备 mybatis 框架需要的基本依赖

  1.  mysql-connector-java 数据库连接 依赖 和  mybatis 使用mybatis 框架所必须的依赖
<dependencies>
    <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.5.6</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.16</version>
    </dependency>

</dependencies>

3 添加 项目需要的表 (tb_login)


项目步骤

1  使用maven 构建的项目

2 在 pom文件添加需要的依赖

3 添加 表信息

4 在主配置文件中,连接数据库,以及加载 映射文件需要的路径

5 在 mapper/dao层 接口 写 关于操作 数据库的方法

6 在 映射文件写具体关于如何操作数据库的sql 语句(重点)

7 测试类,测试结果,进行效果展示


具体细节

1 主配置文件的处理

加载配置文件 db.properties 

  • 关于与数据库连接的信息其中包括 数据库驱动,用户名,密码,url路径
<properties resource="db.properties"></properties>

配置连接环境

  <environments default="development">
                <environment id="development">
                    <transactionManager type="JDBC"></transactionManager>
                   <dataSource type="POOLED">
<!--    配置数据源信息-->
                        <property name="driver" value="${driver}"></property>
                        <property name="url" value="${url}"></property>
                        <property name="username" value="${username}"></property>
                        <property name="password" value="${password}"></property>
                    </dataSource>
                </environment>
            </environments>

加载映射文件 loginMapper.xml

    <mappers>
        <mapper resource="mapper/loginMapper.xml"></mapper>
    </mappers>

注意:这里的一切都是在主配置文件  <configuration>........</configuration>标签包围


2 Test 测试类

        //获取mybatisConfig.xml 配置文件
        InputStream resource = Resources.getResourceAsStream("mybatisConfig.xml");
        //获取SqlSessionFactory对象
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resource);
        // 获取sqlsession 对象
        SqlSession sqlSession = sqlSessionFactory.openSession();

3 在  loginMapper 接口中书写 对 数据库操作的方法

package fs.mapper;

import fs.entity.Login;

import java.util.List;

//操作数据库 的方法
public interface loginMapper {
    // 查询 所有用户的登录信息
    List<Login> getAllLogin();
    // 根据用户id 查询登录信息
    Login getLoginById(Integer id);
    // 插入 李四的登录信息
    int insertLogin(Login login);
    // 修改李四的登录 的密码
    int updateLogin(Login login);
    // 根据用户id 删除登录信息
    int deleteLoginById(Login login);
}

4 实体类 pojo 、entity 要和 数据库对应的表的字段 一一对应

package fs.entity;

public class Login {
    private Integer id;
    private String password;
    private String username;

    public Login() {
    }

    public Login(String username, String password) {
        this.username = username;
        this.password = password;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    @Override
    public String toString() {
        return "Login{" +
                "id=" + id +
                ", password='" + password + '\'' +
                ", username='" + username + '\'' +
                '}';
    }
}

5 在 loginMapper.xml 映射文件 书写 具体实现 loginMapper 接口中方法的sql 语句(重点)

前提: 以下这一切都是在 mapper 标签 内执行的,并且 一定要标注好 namespace 

namespace 的值是 dao/mapper 持久层的接口 的具体位置

namespace="fs.mapper.loginMapper"

查询用户登录信息(select)

注意

1 parameterType 表示 传递参数 类型


2 resultType 

  • 输出简单类型
  • 不管是输出的单个对象还是一个列表(list中包括对象),在mapper.xml中resultType指定的类型是一样的。都是对象类型

注意:

使用resultType进行输出映射,只有查询出来的列名和pojo中的属性名一致,该列才可以映射成功。

单个查询
    <select id="getLoginById" parameterType="int" resultType="fs.entity.Login">
        select * from tb_login where id=#{id};
    </select>

Test 测试类  关于单个查询 的代码

       Login login = sqlSession.selectOne("getLoginById", 1);
        System.out.println(login);

效果展示


多个查询(集合存储)
    <select id="getAllLogin" resultType="fs.entity.Login">
        select * from tb_login;
    </select>

Test 测试类  关于多个查询(集合存储) 的代码

        List<Login> list = sqlSession.selectList("getAllLogin");
        for (Login login : list) {
            System.out.println("id: "+login.getId()+"用户名: "+login.getUsername()+"密码: "+login.getPassword());
        }

效果展示


插入 李四登录信息

在 tb_login 表中 插入 李四登录信息

insert into tb_login(username, password) values ('admin','123456');

loginMapper.xml 映射文件 

   <insert id="insertLogin" parameterType="fs.entity.Login" >
        insert into tb_login(username,password) values(#{username},#{password});
    </insert>

Test 测试类  关于插入 李四登录信息 的代码

   int insert = sqlSession.insert("insertLogin", new Login("admin", "123456"));
        sqlSession.commit();
        if (insert > 0){
            System.out.println("添加成功");
        }

效果展示


修改李四 密码

update tb_login set password='123';

loginMapper.xml 映射文件 

    <update id="updateLogin" parameterType="fs.entity.Login" > 
        update tb_login set password=#{password} where username=#{username},;
    </update>

Test 测试类  关于修改李四 密码 的代码

        int update = sqlSession.update("updateLogin", new Login("admin", "123"));
        // 提交事务
        sqlSession.commit();
        if (update > 0){
            System.out.println("修改成功");
        }

效果展示


删除 李四的登录信息

delete from tb_login where username='李四' and password='123';

loginMapper.xml 映射文件 

    <delete id="deleteLoginById" parameterType="fs.entity.Login" >
        delete from tb_login where username=#{username}and password=#{password};
    </delete>

Test 测试类  关于删除 李四的登录信息的代码

        int delete = sqlSession.delete("deleteLoginById", new Login("admin", "123"));
        sqlSession.commit();
        if (delete > 0){
            System.out.println("删除成功");
        }

效果展示


http://www.kler.cn/a/554202.html

相关文章:

  • 从零搭建微服务项目Base(第7章——微服务网关模块基础实现)
  • k8s-对接NFS存储
  • 小怿学习日记(七) | Unreal引擎灯光架构
  • 若依路由机制
  • 2.19学习记录
  • android模拟加班
  • 23. AI-大语言模型-DeepSeek
  • 计算机三级网络技术知识汇总【3】
  • 10-Redis面试篇
  • 驱动开发、移植
  • 【2025年最新】SpringCloud面试题
  • 【Rust中级教程】1.11. 生命周期(进阶) Pt.1:回顾、借用检查器、泛型生命周期
  • 曙光服务器安装centos8
  • 从零开始构建一个语言模型中vocab_size(词汇表大小)的设定规则
  • Java 中 List、Set、Map 核心实现类解析
  • Linux firewalld 开放端口
  • 【图像去噪】论文精读:PromptIR: Prompting for All-in-One Blind Image Restoration
  • Redis过期机制
  • 从线程池到负载均衡:高并发场景下的系统优化实战
  • DeepSeek赋能智慧城市:多场景应用,打造感知-决策-执行的闭环解决方案架构