MyBatis小白鼠002--spring boot整合Mybatis

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/langtian08/article/details/83184920

1.Mybatis简介

MyBatis 框架是一个持久层框架,它可以让开发者把主要精力放在 SQL 上,通过 Mybatis 提供的映射方式,自由灵活地生成满足需要的 SQL 语句。使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs 映射成数据库中的记录,在国内使用非常广泛。

2.打开我们上一步创建的项目,来继续操作。

在pom.xml中新增依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>1.3.2</version>
</dependency>
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <scope>runtime</scope>
</dependency>

3. 修改一下配置文件,将自动生成的application.properties文件删除,新建一个application.yml文件,毕竟现在流行.yml文件,这样子我们的项目看着比较高端一些。

pom.xml文件中新增一些配置:

server:
  port: 8080
datasource:
  url: localhost:3306/yourtable
spring:
  datasource: # 数据库配置
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://${datasource.url}?useSSL=false&useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&autoReconnect=true&failOverReadOnly=false&maxReconnects=10
    username: root
    password: password
    hikari:
      maximum-pool-size: 10 # 最大连接池数
      max-lifetime: 1770000
mybatis:
  # 指定别名设置的包为所有entity
  type-aliases-package: cn.newtips.bootmybatis.entity
  configuration:
    map-underscore-to-camel-case: true # 驼峰命名规范
  mapper-locations: # mapper映射文件位置
  - classpath:mapper/*.xml

同时请注意,这里有2个地方用到了文件路径

cn.newtips.bootmybatis.entity 代码里写entity的路径

mapper/*.xml MyBatis映射文件的位置

这些下一步我们来操作。

4. 我们来使用最简单的user表来尝试。在自己的数据库中,新建一个表:

CREATE TABLE `boot_user` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `user_name` VARCHAR(255) DEFAULT NULL,
  `password` VARCHAR(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8mb4

 我这里使用了boot_user这个表名。字段内容很简单:id 、user_name、password三个字段。

5. 接着我们来写代码。我们采用最基本的分层接口来组织代码,于是我们有了

resource下面的mapper文件,用来防止MyBatis的mapper.xml文件,来映射数据库与entity的关系,来定义一些操作方法。

在src下面,我们来建立controller、service、dao、entity来存放我们对应的代码。

entity里是实体,对应着表boot_user,里面的字段一一对应,采用驼峰式编写。

public class BootUser {

    private Integer id;
    private String userName;
    private String password;

    //setter  getter
}

dao里是一个interface的BootUserMapper.java。方法与resource中的BootUserMapper.xml的id对应。

同时,记得来个注解@Mapper,让程序能顺利找到这个Mapper类。

@Mapper
public interface BootUserMapper {
    // 与BootUserMapper.xml中的对应
    BootUser getUserByName(String userName);
}

service层里很简单,也是一个方法,记得需要在impl文件夹里去写一个实现啊。

public interface UserService {
    BootUser getUserByName(String name);
}

@Service
public class UserServiceImpl implements UserService {
    @Resource
    private BootUserMapper bootUserMapper;
    @Override
    public BootUser getUserByName(String name) {
        return bootUserMapper.getUserByName(name);
    }
}

controller里,写请求接口方法。

@RequestMapping("/getUserByName/{name}")
public BootUser getUserByName(@PathVariable String name){
    return userService.getUserByName(name);
}

这样就写完了。整体的项目结构如下:

6,启动本项目的XXXApplication.java中的main方法,顺利启动后,浏览器中请求

http://localhost:8080/getUserByName/tom,就能看到结果了。(tom这条数据,是我提前插入表中的)

 好了,第一波配置成功了。接下来,我们进行第二波。

猜你喜欢

转载自blog.csdn.net/langtian08/article/details/83184920