20190514180058.jpg
前言
上篇已经搭建了简单的springboot项目详情请见:
猴子也能懂的springboot教程(一) - springboot入门
本次我们在原先代码基础上整合Mybatis
废话不说,开始
软件版本
mysql mysql 8.0.16
需要注意:mysql8 使用的mysql-connector-java 8.x.x依赖中的驱动由之前版本的com.mysql.jdbc.Driver变为com.mysql.cj.jdbc.Driver
建表
创建user表,字段:id,username,password
建表语句在源码resources/db/db.sql中
依赖
首先在POM文件中添加依赖
<!-- Spring Boot Mybatis 依赖 -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.0.1</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.11</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.10</version>
</dependency>
<!-- build中添加resources,解决打包时mapper.xml不被打包的问题 -->
<!-- 若mapper.xml在resources下,则不用添加 -->
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
</build>
配置文件
在application.yml中添加数据源
# DataSource Config
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://192.168.162.134:3306/easywork?useSSL=false
username: root
password: Root
#mybatis
mybatis:
mapper-locations: classpath:/com/gao/**/*Mapper.xml
type-aliases-package: com.gao.entity
此时就可以启动项目了,数据库也连接上了。是不是发现springboot使用起来非常非常简便?下面我们创建实体测试一下
完成,开始测试
创建user实体
package com.gao.entity;
public class User {
private String id;
private String username;
private String password;
getter/setter ...
}
创建mapper.java
package com.gao.dao;
import ...;
@Mapper
public interface UserMapper {
User getUserByName(String username);
}
创建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.gao.dao.UserMapper">
<select id="getUserByName" parameterType="String" resultType="User">
SELECT id, username, password
FROM user
WHERE username = #{username}
</select>
</mapper>
创建service
接口和impl
package com.gao.service;
import com.gao.entity.User;
public interface IUserService {
User getUserByUsername(String username);
}
impl
package com.gao.service.impl;
import ...;
@Service
public class UserServiceIml implements IUserService{
@Autowired
private UserMapper userMapper;
@Override
public User getUserByUsername(String username) {
return userMapper.getUserByName(username);
}
}
编辑Controller
修改上次的TestController
package com.gao.web;
import ...;
@RestController
@RequestMapping("test")
public class TestController {
@Autowired
private IUserService userService;
@GetMapping("index/{name}")
public String index(@PathVariable String name){
User user = userService.getUserByUsername(name);
return "hi " + user.getUsername() + " your id is "+ user.getId();
}
}
启动并测试
20190513180001.png