文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

SpringBoot怎么整合Mybatis

2023-07-05 19:36

关注

这篇文章主要介绍了SpringBoot怎么整合Mybatis的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇SpringBoot怎么整合Mybatis文章都会有所收获,下面我们一起来看看吧。

Mybatis的简单介绍

MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。

iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAOs)

MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java对象)映射成数据库中的记录。

思想:ORM:Object Relational Mapping

Mybatis基本框架:

SpringBoot怎么整合Mybatis

1 环境搭建

新建Spring Boot项目,引入依赖

pom.xml

<!--mysql--><dependency>    <groupId>mysql</groupId>    <artifactId>mysql-connector-java</artifactId>    <version>5.1.47</version></dependency><!--mybatis--><dependency>    <groupId>org.mybatis.spring.boot</groupId>    <artifactId>mybatis-spring-boot-starter</artifactId>    <version>1.3.2</version></dependency><!--Druid数据源--><dependency>    <groupId>com.alibaba</groupId>    <artifactId>druid-spring-boot-starter</artifactId>    <version>1.1.9</version></dependency><!--测试--><dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-test</artifactId>    <scope>test</scope></dependency>

DB-sql

CREATE TABLE `student` (  `id` int(11) NOT NULL AUTO_INCREMENT,  `name` varchar(255) DEFAULT NULL,  `age` int(11) DEFAULT NULL,  PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8;

项目结构

SpringBoot怎么整合Mybatis

2 整合方式一:注解版

2.1 配置

server:  port: 8081spring:  datasource: # 配置数据库    username: root    password: 12345    driver-class-name: com.mysql.jdbc.Driver    url: jdbc:mysql://localhost:3306/test   #数据库名    type: com.alibaba.druid.pool.DruidDataSource

2.2 编码

@Mapper@Repositorypublic interface JavaStudentMapper {        @Insert("insert into student(name, age) " +            "values (#{name}, #{age})")    public int saveStudent(Student student);        @Select("select *  " +            "from student " +            "where id = #{id}")    public Student findStudentById(Integer id);        @Select("select * " +            "from student")    @Results({            @Result(property = "id", column = "id"),            @Result(property = "name", column = "name"),            @Result(property = "age", column = "age")    })    public List<Student> findAllStudent();        @Delete("delete   " +            "from student " +            "where id = #{id}")    public int removeStudentById(Integer id);        @Update("update set name=#{name},age=#{age}  " +            "where id=#{id}")    public int updateStudentById(Student student);}

2.3 测试

@Autowiredprivate JavaStudentMapper studentMapper;@Testvoid testJavaMapperInsert() {    Student student = new Student("张三", 22);    System.out.println(studentMapper.saveStudent(student));}@Testvoid testJavaMapperFind() {    System.out.println(studentMapper.findStudentById(2));}@Testvoid testJavaMapperFindAll() {    System.out.println(studentMapper.findAllStudent());}@Testvoid testJavaMapperUpdate() {    Student student = new Student(2, "张三", 22);    System.out.println(studentMapper.updateStudentById(student));}@Testvoid testJavaMapperDelete() {    System.out.println(studentMapper.removeStudentById(2));}

3 整合方式二:XML版

3.1 配置

server:  port: 8081spring:  application:    name: hospitalManager       #项目名  datasource: # 配置数据库    username: root    password: 12345    driver-class-name: com.mysql.jdbc.Driver    url: jdbc:mysql://localhost:3306/test   #数据库名    type: com.alibaba.druid.pool.DruidDataSourcemybatis:  mapper-locations: classpath:mapper@Mapper@Repositorypublic interface XmlStudentMapper {        public int saveStudent(Student student);        public Student findStudentById(Integer id);        public List<Student> findAllStudent();        public int removeStudentById(Integer id);        public int updateStudentById(Student student);}

xml文件(StudentMapper.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="org.ymx.sp_mybatis.dao.xmlMapper.XmlStudentMapper">    <!-- 添加学生-->    <insert id="saveStudent" parameterType="org.ymx.sp_mybatis.pojo.Student" useGeneratedKeys="true"            keyProperty="id">        insert into student(name, age)        values (#{name}, #{age})    </insert>    <!--查看学生根据ID-->    <select id="findStudentById" parameterType="integer"              resultType="org.ymx.sp_mybatis.pojo.Student">        select *        from student        where id = #{id}    </select>    <!--查看全部学生-->    <select id="findAllStudent" resultMap="studentResult">        select *        from student    </select>    <!--删除学生根据ID-->    <delete id="removeStudentById" parameterType="integer">        delete        from student        where id = #{id}    </delete>    <!--修改学生根据ID-->    <update id="updateStudentById" parameterType="org.ymx.sp_mybatis.pojo.Student">        update student        set name=#{name},            age=#{age}        where id = #{id}    </update>    <!--查询结果集-->    <resultMap id="studentResult" type="org.ymx.sp_mybatis.pojo.Student">        <result column="id" javaType="INTEGER" jdbcType="INTEGER" property="id"/>        <result column="name" javaType="STRING" jdbcType="VARCHAR" property="name"/>        <result column="age" javaType="INTEGER" jdbcType="INTEGER" property="age"/>    </resultMap></mapper>

3.3 测试

@Autowiredprivate XmlStudentMapper studentMapper;@Testvoid testJavaMapperInsert() {    Student student = new Student("张三", 22);    System.out.println(studentMapper.saveStudent(student));}@Testvoid testJavaMapperFind() {    System.out.println(studentMapper.findStudentById(2));}@Testvoid testJavaMapperFindAll() {    System.out.println(studentMapper.findAllStudent());}@Testvoid testJavaMapperUpdate() {    Student student = new Student(2, "张三", 22);    System.out.println(studentMapper.updateStudentById(student));}@Testvoid testJavaMapperDelete() {    System.out.println(studentMapper.removeStudentById(2));}

4 总结

基本步骤:

SpringBoot怎么整合Mybatis

注意事项:

(1)相比注解方式,更推荐使用xml方式,因为注解方式将SQL语句嵌套到Java代码中,一旦需要修改则需要重新编译项目,而xml方式则不需要重新编译项目

(2)xml方式需要在主启动函数或配置类中配置接口的扫描路径

关于“SpringBoot怎么整合Mybatis”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“SpringBoot怎么整合Mybatis”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯