A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 迷上莲的鳕鱼 初级黑马   /  2019-7-19 09:33  /  1720 人查看  /  0 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

## Springboot + Mybatis整合

* 第一步  创建Spring Initializr项目
1. File->New->Project(or Module)
2. 选择Spring Initializr,然后next,配置应该暂时不用管,继续next
3. 选择需要的依赖:Web->Web,SQL->MySQL,SQL->JDBC,SQL->Mybatis,下一步
4. 设置路径,就设置到当前的项目下就行了。
5. finish
* 第二步  搭建主要结构和配置文件(以book为例)
1. 在com.example包下面分别创建service、controller、entity和dao(mapper)包
2. entity下面定义book类
3. dao包下定义一个BookMapper的接口,在内部定义一个返回值为List<Book>的findAll方法,类上面加上@Repository注解
```
@Reposity
public interface BookMapper{
    List<Book> findAll();   //方法就是这一句
}
```
4. service包下面创建一个BookService接口,写一个同上的方法。再在包下创建一个impl包,在里面定义一个BookServiceImpl类,实现BookService接口,使用@Service注解,里面用@Autowried引入一个BookMapper对象,重写接口的方法,方法内部用bookMapper调用findAll方法

```
@Service
public class BookServiceImpl implements BookService {

    @Autowired
    private BookMapper bookMapper;

    @Override
    public List<Book> findAll() {
        return bookMapper.findAll();
    }
}
```
5. 在controller定义一个BookController类,在里面定义一个BookController类,使用@RestController注解,里面用@Autowried引入一个BookService对象,定义一个方法,里面使用bookService调用findAll
注意controller这里面,有一个注解是@RequestMapping,里面的参数就是到时候网址需要访问的地址,如果在类上面设置了,则该类里面所有方法都要在这个地址后面,如类上注解了("/book"),方法上面注解了("/list"),网址就需要/book/list才可以访问这个方法

```
@RestController
@RequestMapping("/book")
public class BookController {

    @Autowired
    private BookService bookService;

    @RequestMapping("/list")
    public List<Book> findAll(){
        List<Book> books = bookService.findAll();
        return books;
    }
}
```
6. 配置文件
删除application.properties,创建application.yml和application-dev.yml
appliction.yml
   
```
spring:
  profiles:
    active: dev
```
application-dev.yml

```
server:
  port: 8080

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/bookman
    username: root
    password: msldxy

mybatis:
  mapper-locations: classpath:com/example/mapping/*Mapper.xml
  type-aliases-package: com.example.entity

#showSql
logging:
  level:
    com:
      example:
        mapper : debug
```
其中datasource下面的几个参数是自己数据库的参数,可以根据之前的jdbc的几个参数填过来。

在resources目录下创建文件夹com/example/dao,再在这下面创建文件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">
<mapper namespace="com.example.dao.BookMapper">

    <select id="findAll" resultType="com.example.entity.Book">
        select * from book
    </select>

</mapper>
```
7. 在DemoApplication的主类上面加上@MapperScan("com.example.dao")注解
8. 运行DemoAplication
9. 打开浏览器,访问localhost:8080/book/list

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马