开发环境:
Intellij IDEA 2018.2+springboot+jdk1.8+maven+alibaba Druid 数据库连接池:1.1.9
1、开始搭建项目
2、按照pom.xml文件补齐需要的依赖,maven会根据文件自动导入jar包
4.0.0
com.winter
springboot-mybatis-demo
0.0.1-SNAPSHOT
jar
springboot-mybatis-demo
Demo project for Spring Boot
org.springframework.boot
spring-boot-starter-parent
2.0.5.RELEASE
UTF-8
UTF-8
1.8
org.springframework.boot
spring-boot-starter-jdbc
org.springframework.boot
spring-boot-starter-web
org.mybatis.spring.boot
mybatis-spring-boot-starter
1.3.2
mysql
mysql-connector-java
runtime
org.springframework.boot
spring-boot-starter-test
test
com.fasterxml.jackson.core
jackson-core
com.fasterxml.jackson.core
jackson-databind
com.fasterxml.jackson.datatype
jackson-datatype-joda
com.fasterxml.jackson.module
jackson-module-parameter-names
com.alibaba
druid-spring-boot-starter
1.1.9
org.springframework.boot
spring-boot-maven-plugin
3、按照下图创建包结构
4、项目启动类SpringbootMybatisDemoApplication代码
package com.winter;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@MapperScan("com.winter.dao")
public class SpringbootMybatisDemoApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootMybatisDemoApplication.class, args);
}
}
注意:@MapperScan(“com.winter.mapper”)这个注解非常的关键,这个对应了项目中mapper(dao)所对应的包路径,
5、这次使用application.yml配置,把原来的properties文件删除即可
application.yml的创建:new----File—输入文件名和后缀即可
server:
port: 8080
spring:
datasource:
name: mysql_test
# type: org.apache.commons.jdbc.BasicDataSource
type: com.alibaba.druid.pool.DruidDataSource
#druid相关配置
druid:
#监控统计拦截的filters
filters: stat
driver-class-name: com.mysql.jdbc.Driver
#基本属性
url: jdbc:mysql://localhost:3306/mytest?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true
# url: jdbc:mysql://localhost:3306/mytest?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true
# url: jdbc:mysql://127.0.0.1:3306/mytest?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true
username: root
password: root
#配置初始化大小/最小/最大
initial-size: 1
min-idle: 1
max-active: 20
#获取连接等待超时时间
max-wait: 60000
#间隔多久进行一次检测,检测需要关闭的空闲连接
time-between-eviction-runs-millis: 60000
#一个连接在池中最小生存的时间
min-evictable-idle-time-millis: 300000
validation-query: SELECT 'x'
test-while-idle: true
test-on-borrow: false
test-on-return: false
#打开PSCache,并指定每个连接上PSCache的大小。oracle设为true,mysql设为false。分库分表较多推荐设置为false
pool-prepared-statements: false
max-pool-prepared-statement-per-connection-size: 20
## 该配置节点为独立的节点,有很多同学容易将这个配置放在spring的节点下,导致配置无法被识别
mybatis:
mapper-locations: classpath:mapper/*.xml #注意:一定要对应mapper映射xml文件的所在路径
type-aliases-package: com.winter.model # 注意:对应实体类的路径
7、创建数据库mytest、表t_user
userId字段设置成自动增长
8、model下面创建实体类UserDomain.java
package com.winter.model;
public class UserDomain {
private Integer userId;
private String userName;
private String password;
private String phone;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public Integer getUserId() {
return userId;
}
public void setUserId(Integer userId) {
this.userId = userId;
}
}
9、dao下面创建UserDao.java
package com.winter.dao;
import com.winter.model.UserDomain;
import java.util.List;
public interface UserDao {
public int insert(UserDomain record);
public int deleteUser(int userId);
public int updateUser(UserDomain userDomain);
public UserDomain selectById(int userId);
public List selectAll();
}
10、resources—mapper下面创建mybatis映射文件: UserMapper.xml
insert into t_user (userName,password,phone) values (#{userName,jdbcType=VARCHAR},#{password,jdbcType=VARCHAR},#{phone,jdbcType=VARCHAR})
delete from t_user where userId=#{userId}
update t_user set userName=#{userName},password=#{password},phone=#{phone} where userId=#{userId}
11、controller下面创建UserController.java
package com.winter.controller;
import com.winter.model.UserDomain;
import com.winter.service.user.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping(value = "/user")
public class UserController {
@Autowired
private UserService userService;
@PostMapping("/add")
public int addUser(UserDomain user){
return userService.addUser(user);
}
@PostMapping("/delete")
public int deleteUser(int userId){
return userService.deleteUser(userId);
}
@GetMapping("/selectById")
public UserDomain selectById(int userId){
return userService.selectById(userId);
}
@PostMapping("/update")
public int updateUser(UserDomain userDomain,int userId){
UserDomain userDomain1=userService.selectById(userId);
userDomain1.setUserName(userDomain.getUserName());
userDomain1.setPassword(userDomain.getPassword());
userDomain1.setPhone(userDomain.getPhone());
return userService.updateUser(userDomain);
}
@GetMapping("/selectAll")
public List selectAll( ){
return userService.selectAll();
}
}
12.在包service.user下面创建service类接口UserService.java
注意是接口类
package com.winter.service.user;
import com.winter.model.UserDomain;
import java.util.List;
public interface UserService {
public int addUser(UserDomain user);
public int deleteUser(int userId);
public int updateUser(UserDomain userDomain);
public UserDomain selectById(int userId);
public List selectAll();
}
13、在包service.user下面创建包impl,然后在impl下面创建service接口的实现类UserServiceImpl.java
package com.winter.service.user.impl;
import com.winter.dao.UserDao;
import com.winter.model.UserDomain;
import com.winter.service.user.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service("userService")
public class UserServiceImpl implements UserService {
@Autowired
private UserDao userDao;//这里会报错,但是并不会影响效果
@Override
public int addUser(UserDomain user) {
return userDao.insert(user);
}
@Override
public List selectAll() {
return userDao.selectAll();
}
@Override
public UserDomain selectById(int userId) {
return userDao.selectById(userId);
}
@Override
public int deleteUser(int userId) {
return userDao.deleteUser(userId);
}
@Override
public int updateUser(UserDomain userDomain) {
return userDao.updateUser(userDomain);
}
}
15、测试
项目搭建完成了,运行启动类SpringbootMybatisDemoApplication
不报错,基本就搭建成功了。
17、测试可以使用了idea一个很用心的功能。
可以发http请求的插件:
18、测试添加数据,按下图操作,运行绿色三角即可成功插入数据
由于UserId是自动自增的,不需要输入
完整项目下载地址:
https://download.csdn.net/download/nba_linshuhao/10678029