springBoot + mybatis框架

    科技2024-12-16  14

    springBoot + mybatis框架

     

    我们都学过spring 和springmvc框架,也感受到了这两个框架的“地狱配置”,对于新手程序猿来说,可能配置一个项目就要花一天的时间,而springBoot简化了这些配置,使用springBoot构建一个项目可能十多分钟就能构建好一个项目,对程序猿非常友好。

     

     

    目标:构建的项目是springBoot + mybatis项目

     

    springBoot流程梳理:

    和springMVC是一样的,程序无非就是前端请求--》后端服务器--》数据库--》然后返回前端。springBoot也是进行前后端分离,共分为4层

    1、dao层

    2、pojo层

    3、service层

    4、controller层

     

    步骤:

    1、IDEA构建springBoot项目

    1.1 IDEA新建一个项目

     

     

    1.2 选择Spring Initializr --》选择对于的JDK版本--》 选择springBoot快速构建项目的地址(注:底层还是使用springBoot的官网构建项目,这里IDEA一键式的实现了这个功能)

    1.3、使用IDEA集成spring官网可能连接不上,需要设置代理

    setting--输入http搜索--HTTP Proxy --Auto... --Check connection--输入网址--点击ok

    1.4 根据自己项目修改对于的组名,包名,项目名 ,选择项目类型为maven项目,包类型为jar包,选择和前面一样的JDK版本

    1.5 这个页面配置的是SpringBoot项目相关的依赖,可以根据自己的项目来选择相关依赖

    1.5.1 开发工具 建议大家选择SpringBoot DevTools 和Lombok

    -- SpringBoot DevTools :实现项目的热部署

    -- Lombok : SpringBoot 项目的核心,使用注解编程,可以让java变得简洁、快速

     

     

    1.5.2 选择web工程相关依赖,选择第一个即可

    1.5.3 模板引擎,大家如果使用了就选择对于的依赖,这个项目不使用,就不勾选了

     

    1.5.4选择SQL---》选择对于的依赖,JDBC API,MYSQL Driver、mybatis Framework,前两个要连接数据库是必选的,mybatis Framework是这次使用mybatis框架实现连接数据库。

     

    1.6 填写项目名,可默认不修改--》Finish,创建项目

     

    1.7项目创建成功,选择enable Auto-Import 允许自动导入

     

    1.8 我们可以在左侧查看项目结构,在右侧查看导入的依赖等等,如果没有爆红,正常来说就是没问题

     

    1.9 可以选择删除没用的目录,也可以不删除

     

    删除多余的之后的目录结构:

     

     

    2、分层编写代码

    总体结构如下,注意每层都使用注解实现

     

    2.1、dao层

    -- 实现数据库操作

    package com.duan.dao; import com.duan.pojo.Books; import org.apache.ibatis.annotations.Mapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Repository; import java.util.List; @Mapper #注解之后这个接口在编译时会生成相应的实现类 @Repository #用在持久层的接口上,这个注解是将接口的一个实现类交给spring管理。 public interface BookMapper { List<Books> queryBookById(int id); List<Books> queryAllBooks(); int addBook(Books book); int deleteBookById(int id); int updateBook(int id); }

     

    dao层的mapper.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="com.duan.dao.BookMapper"> <!--增加一个Book--> <insert id="addBook" parameterType="com.duan.pojo.Books"> insert into books (bookID,bookName,bookCount,detail) value(#{bookID}, #{bookName},#{bookCount},#{detail}) </insert> <!--根据id删除一个Book--> <delete id="deleteBookById" parameterType="int"> delete from books where bookID=#{bookID} </delete> <!--更新Book--> <update id="updateBook" parameterType="Books"> update books set bookName = #{bookName},bookCounts = #{bookCounts},detail = #{detail} where bookID = #{bookID} </update> <!--根据id查询,返回一个Book--> <select id="queryBookById" resultType="Books"> select * from books where bookID = #{bookID} </select> <select id="queryAllBooks" resultType="Books"> select * from mydatabase.books; </select> </mapper>

    在resource路径下新建一个dao层的mapper.xml文件,在配置文件中指向这个路径:mybatis.mapper-locations=classpath:mybatis/*.xml

    2.2、pojo层

    --业务类

    package com.duan.pojo; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @Data @AllArgsConstructor @NoArgsConstructor public class Books { private int bookID; private String bookName; private String bookCount; private String detail; }

     

    2.3、service层

    -- 实现业务

    接口

     

    package com.duan.service; import com.duan.pojo.Books; import org.springframework.stereotype.Service; import java.util.List; public interface bookService { List<Books> queryBookById(int id); List<Books> queryAllBooks(); int addBook(Books book); int deleteBookById(int id); int updateBook(int id); }

    实现类

    package com.duan.service; import com.duan.dao.BookMapper; import com.duan.pojo.Books; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @Service #Service层的注解:将自动注册到Spring容器,不需要再在applicationContext.xml文件定义bean了 public class bookServiceImpl implements bookService { @Autowired(required = false) private BookMapper bookMapper; public void setBookMapper(BookMapper bookMapper){ this.bookMapper=bookMapper; } @Override public List<Books> queryBookById(int id) { return bookMapper.queryBookById( id); } @Override public List<Books> queryAllBooks() { return bookMapper.queryAllBooks(); } @Override public int addBook(Books book) { return bookMapper.addBook(book); } @Override public int deleteBookById(int id) { return bookMapper.deleteBookById(id); } @Override public int updateBook(int id) { return bookMapper.updateBook(id); } }

    4、controller层

    -- 相当于servlet,处理前端请求,返回后端响应

    package com.duan.contorller; import com.duan.pojo.Books; import com.duan.service.bookService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.List; @RestController #controller层注解:将自动注册到Spring容器,不需要再在applicationContext.xml文件定义bean了 public class BooksController { #自动装配 @Autowired @Qualifier("bookServiceImpl") #表明了哪个实现类才是我们所需要的 private bookService bookService; @GetMapping("/queryBook") public List<Books> queryBookById(){ List<Books> books =bookService.queryAllBooks(); return books; } }

    关键的配置文件

    1、配置数据库连接信息

    2、配mybatis的相关信息

    3、spring相关的配置都是由注解实现了,不需程序猿手动配置了,真是太方便了

    spring.datasource.username=root spring.datasource.password=123456 spring.datasource.url=jdbc:mysql://localhost:3306/mydatabase?useSSL=true&useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver #整合mybatis mybatis.type-aliases-package=com.duan.pojo #指向mapper.xml文件的路径 mybatis.mapper-locations=classpath:mybatis/*.xml mybatis.configuration.log-impl=org.apache.ibatis.logging.log4j2.Log4j2Impl #mybatis.config-location=classpath:mybatis/*.xml

    运行springBoot的主方法类:

    看到有spring的图标出现,并且没有报错,至此,我们的springboot项目就已经搭建好了

    项目结构是这样的:

     

     

     

     

     

     

     

     

     

     

     

     

    Processed: 0.061, SQL: 8