ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

SpringBoot学习笔记(十一)——SpringBoot整合Mybatis

2022-09-16 17:32:41  阅读:342  来源: 互联网

标签:SpringBoot bookId int bookName detail 笔记 example Mybatis public


这里就不介绍Mybatis如何使用了,在之前SSM整合的时候已经介绍过了,这里主要是整合。

在pom.xml中增加如下依赖:

<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.2.2</version>
</dependency>
<dependency>    <groupId>mysql</groupId>    <artifactId>mysql-connector-java</artifactId> </dependency>

在application.properties中添加数据源配置

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/example
spring.datasource.username=root
spring.datasource.password=root

同时在application.properties中添加整合Mybaties相关属性

#给pojo实体类起别名,在mapper.xml文件中就不需要再写全类名了
mybatis.type-aliases-package=com.example.bean 
#接口的配置文件的位置 我这里接口配置文件是UserMapper.xml 如下图所示
mybatis.mapper-locations=classpath:mybatis/mapper/*.xml

然后我们在bean包下创建Books类,代码如下:

public class Books {

    private int bookId;
    private String bookName;
    private int bookCount;
    private String detail;

    public int getBookId() {
        return bookId;
    }

    public void setBookId(int bookId) {
        this.bookId = bookId;
    }

    public String getBookName() {
        return bookName;
    }

    public void setBookName(String bookName) {
        this.bookName = bookName;
    }

    public int getBookCount() {
        return bookCount;
    }

    public void setBookCount(int bookCount) {
        this.bookCount = bookCount;
    }

    public String getDetail() {
        return detail;
    }

    public void setDetail(String detail) {
        this.detail = detail;
    }
}

在Dao文件夹下创建BookMapper接口,代码如下:


@Mapper
@Component
public interface BookMapper {

    int addBook(Books book);

    List<Books> getAllBooks();

    Books getBookById(int bookId);

    int deleteBook(int bookId);

    int updateBook(Books book);

}

在我们之前配置的路径下Resources/mybatis/mapper/路径下创建BookMapper.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是BookMapper接口所在路径-->
<mapper namespace="com.example.dao.BookMapper">
    <!-- 这里Books不用写路径时因为设置了别名 -->
    <!-- 这个方法的返回值为int,是基本类型所以不用resultType参数,引用类型需要用-->
    <insert id="addBook" parameterType="Books">
        insert into example.books(bookName,bookCounts,detail)
            values (#{bookName},#{bookCounts},#{detai});
    </insert>

    <delete id="deleteBookById" parameterType="Integer">
        delete from example.books where bookId = #{id};
    </delete>

    <update id="updateBook" parameterType="Books">
        update example.books
           set
               <if test="bookName != null">
                   bookName = #{bookName}
               </if>
               <if test="bookName != null">
                   ,bookCounts = #{bookCounts}
               </if>
               <if test="bookName != null">
                   ,detail = #{detail}
               </if>
         where bookId = #{bookId};
    </update>

    <select id="queryBookById" parameterType="int" resultType="Books">
        select * from example.books where bookId = #{id};
    </select>

    <select id="queryAllBook" resultType="Books">
        select * from example.books;
    </select>

</mapper>

这里贴一下各个类的位置

 

 在Service中增加如下方法:

@Autowired
private BookMapper bookMapper;


public List<Books> getAllBooks() {
    return bookMapper.getAllBooks();
}

在controller中增加如下方法:

@RequestMapping("getAllBooks")
List<Books> getAllBooks() {
     return userService.getAllBooks();
}

在浏览器中访问,代码如下:

 

标签:SpringBoot,bookId,int,bookName,detail,笔记,example,Mybatis,public
来源: https://www.cnblogs.com/worthmove/p/16700673.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有