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

21天掌握javaweb--->第3天:MyBatis基础与Spring Boot集成

21天掌握JavaWeb--->MyBatis基础与Spring Boot集成

MyBatis简介

MyBatis是一个流行的Java持久层框架,它简化了与关系型数据库的交互。通过将SQL语句与Java代码进行映射,MyBatis提供了一种方便、灵活的方式来执行数据库操作。它支持动态SQL、缓存机制和插件扩展,使得开发人员能够更高效地编写和管理数据库访问代码。作为一种轻量级框架,MyBatis在Java开发中被广泛应用于构建可靠的持久化解决方案。

配置MyBatis与Spring Boot集成

1. 项目配置

首先,通过start.spring.io创建工程,并选择MySQL DriverSpring WebMyBatis Framework基本依赖。

2. 定义Mapper接口

创建专门存放mapper接口的包:cn.springdoc.mapper,并在其中定义一个FooMapper

package cn.springdoc.mapper;
import java.time.LocalDateTime;
import org.apache.ibatis.annotations.Mapper;
@Mapper // 使用Mapper注解
public interface FooMapper {
    /**
    * 获取数据库的当前时间
    * @return
    */
    LocalDateTime now();
}

3. 创建Mapper映射文件

src/main/resources目录下创建mapper目录,专门用于存放mapper映射文件。创建FooMapper接口的映射文件FooMapper.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="cn.springdoc.mapper.FooMapper">
    <select id="now" resultType="java.time.LocalDateTime">
        SELECT NOW();
    </select>
</mapper>

4. 数据源和MyBatis配置

application.properties文件中配置数据源和mapper接口的位置:

spring.datasource.url=jdbc:mysql://localhost:3306/test?serverTimezone=GMT%2B8&characterEncoding=utf-8&useSSL=false
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
mybatis.mapper-locations=classpath:mapper/*.xml

5. 启动类配置

启动类加入@MapperScan注解指定mapper接口的位置:

@SpringBootApplication
@MapperScan("com.example.mapper")
public class DemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

编写简单的Mapper和SQL

1. Mapper接口

定义一个UserMapper接口:

public interface UserMapper {
    User selectUserById(Long id);
    void insertUser(User user);
}

2. Mapper XML映射文件

编写UserMapper的XML映射文件UserMapper.xml

<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.mapper.UserMapper">
    <resultMap id="BaseResultMap" type="com.example.entity.User">
        <id column="id" property="id" jdbcType="BIGINT" />
        <result column="username" property="username" jdbcType="VARCHAR" />
        <result column="password" property="password" jdbcType="VARCHAR" />
    </resultMap>
    <select id="selectUserById" resultMap="BaseResultMap">
        SELECT * FROM user WHERE id = #{id}
    </select>
    <insert id="insertUser">
        INSERT INTO user (username, password) VALUES (#{username}, #{password})
    </insert>
</mapper>

3. 使用Mapper

在Service或Controller中使用UserMapper

@Service
public class UserService {
    @Autowired
    private UserMapper userMapper;
    public User getUserById(Long id) {
        return userMapper.selectUserById(id);
    }
    public void createUser(User user) {
        userMapper.insertUser(user);
    }
}

总结

通过上述步骤,我们完成了MyBatis与Spring Boot的集成,并编写了简单的Mapper和SQL。MyBatis的优势在于其简单性和灵活性,能够快速地与Spring Boot集成,提供强大的数据库操作能力。通过使用MyBatis,我们可以更加专注于业务逻辑的实现,而不是数据库操作的细节,从而提高开发效率和代码质量。


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

相关文章:

  • 【工具变量】上市公司企业所在地城市等级直辖市、副省级城市、省会城市 计划单列市(2005-2022年)
  • 【最新免费PPT制作并下载】Kimi PPT助手:智能化演示文稿生成,职场效率的革命性提升
  • Java基础之GUI:探索图形化界面编程的魅力
  • 如何把阿里云ECS里的文件下载到本地(免登录免配置)
  • go并发设计模式runner模式
  • 【包教包会】CocosCreator3.x——重写Sprite,圆角、3D翻转、纹理循环、可合批调色板、不影响子节点的位移旋转缩放透明度
  • MATLAB基础应用精讲-【人工智能】数据生命周期‌(概念篇)
  • 【jvm】C1编译器
  • NLP-语料库的相关知识整理
  • vue 项目准备
  • Figma入门-组件变体复习
  • Kafka 数据写入问题
  • linux安全-firewalld防火墙-基础讲解
  • Linux Find 命令详情解释
  • cf EC 172 C(0->-1 的转化+区间和使用前缀和表示,化简式子)+ D(二维的信息,先对一维排序,另一维看情况分析)
  • 时间同步服务器--Linux中
  • leetcode--螺旋矩阵
  • 《利用 Python 和 Pyecharts 对豆瓣电影数据可视化分析》
  • 「Java EE开发指南」如何在Java EE网站中使用CodeLive?
  • mysql-为什么需要线程池
  • 爬虫获取的数据如何确保准确性?
  • CAD 二次开发入门与实践:以 C# 为例
  • 【数据库系列】Spring Boot如何配置Flyway的回调函数
  • 跨 CA 签发多个证书的 Nginx mTLS 配置
  • web安全从0到1:burp-suite4
  • 【Web】0基础学Web—html基本骨架、语义化标签、非语义化标签、列表、表格、表单