springBoot + mybatis框架

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项目就已经搭建好了

项目结构是这样的:

 

 

 

 

 

 

 

 

 

 

 

 

构建Spring Boot + MyBatis框架是一种常见的Java Web开发方式,它结合了Spring Boot框架MyBatis持久层框架,可以快速搭建一个高效、可扩展的Web应用程序。下面是构建这个框架的一般步骤: 1. 创建Spring Boot项目:使用Spring Initializr或者IDE工具创建一个新的Spring Boot项目,选择所需的依赖项,包括Spring Web和MyBatis等。 2. 配置数据库连接:在application.properties或application.yml文件中配置数据库连接信息,包括数据库URL、用户名、密码等。 3. 创建实体类:根据数据库表结构创建对应的实体类,使用注解标记实体类与数据库表的映射关系。 4. 创建Mapper接口:创建Mapper接口,定义数据库操作的方法,使用注解标记SQL语句与方法的映射关系。 5. 创建Mapper XML文件:在resources目录下创建Mapper XML文件,编写SQL语句,与Mapper接口中的方法对应。 6. 配置MyBatis:在application.properties或application.yml文件中配置MyBatis相关的配置,包括Mapper XML文件的路径等。 7. 编写Service层:创建Service接口和实现类,定义业务逻辑,并调用Mapper接口中的方法进行数据库操作。 8. 编写Controller层:创建Controller类,处理HTTP请求,并调用Service层的方法进行业务处理。 9. 运行测试:编写单元测试用例,测试各个层的功能是否正常。 10. 部署和发布:将项目打包成可执行的JAR文件或WAR文件,部署到服务器上,并启动应用程序。 以上是构建Spring Boot + MyBatis框架的一般步骤,当然在实际开发中还会涉及到其他方面的内容,比如事务管理、异常处理、日志记录等。希望对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值