1. 配置pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.6.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.chenbin</groupId>
<artifactId>securitydemo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>securitydemo</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<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>
<!--通用mapper-->
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper</artifactId>
<version>3.4.2</version>
</dependency>
<!--mapper-->
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-spring-boot-starter</artifactId>
<version>1.1.3</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.9</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
2. 配置application.yml
server:
port: 8080
spring:
datasource:
name: test
type: com.alibaba.druid.pool.DruidDataSource
druid:
url: jdbc:mysql://127.0.0.1:3306/user_info?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=CTT
username: root
password: 456789 # 使用druid数据源
driver-class-name: com.mysql.cj.jdbc.Driver
filters: stat
maxActive: 20
initialSize: 1
maxWait: 60000
minIdle: 1
timeBetweenEvictionRunsMillis: 60000
minEvictableIdleTimeMillis: 300000
validationQuery: select 'x'
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
poolPreparedStatements: true
max-pool-prepared-statement-per-connection-size: 20
3. 创建数据库【数据库:user_info】(修改application.yml中的数据库名和连接密码)
/*
Navicat MySQL Data Transfer
Source Server : MySQL
Source Server Version : 50724
Source Host : localhost:3306
Source Database : user_info
Target Server Type : MYSQL
Target Server Version : 50724
File Encoding : 65001
Date: 2019-06-22 09:01:56
*/
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for admin
-- ----------------------------
DROP TABLE IF EXISTS `admin`;
CREATE TABLE `admin` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(255) NOT NULL,
`password` varchar(255) NOT NULL,
`email` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=utf8mb4;
-- ----------------------------
-- Records of admin
-- ----------------------------
INSERT INTO `admin` VALUES ('2', '123', '123', '123');
INSERT INTO `admin` VALUES ('3', '123', '', '');
INSERT INTO `admin` VALUES ('12', '13260821710', 'SJY501314AA', '34502225@qq.com');
INSERT INTO `admin` VALUES ('13', 'xiaoli', '123123', '3375793023');
INSERT INTO `admin` VALUES ('14', '13260821710', 'SJY5201314AA', '34502225@qq.com');
INSERT INTO `admin` VALUES ('15', '13260821710', 'SJY5201314AA', '34502225@qq.com');
INSERT INTO `admin` VALUES ('16', 'admin', '123456', '123@qq.com');
INSERT INTO `admin` VALUES ('17', 'admin', 'admin1', 'abc@qq.com');
INSERT INTO `admin` VALUES ('18', '13260821710', 'SJY5201314AA', '34502225@qq.com');
INSERT INTO `admin` VALUES ('19', 'xjf', '123456', '34502225@qq.com');
4. 新建实体类Account
package com.chenbin.securitydemo.mappertest;
import javax.persistence.Column;
import javax.persistence.Id;
import javax.persistence.Table;
@Table(name = "admin")
public class Account {
@Id
@Column(name = "id")
private int id;
private String username;
private String password;
private String email;
public Account(int id, String username, String password, String email) {
this.id = id;
this.username = username;
this.password = password;
this.email = email;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
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 getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
5. 新建dao层AccountDao,继承Mapper
package com.chenbin.securitydemo.mappertest;
import org.springframework.stereotype.Repository;
import tk.mybatis.mapper.common.Mapper;
@Repository
public interface AccountDao extends Mapper<Account> {
}
6. 建立service层,AccountService
package com.chenbin.securitydemo.mappertest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class AccountService {
@Autowired
private AccountDao accountDao;
public List<Account> hello(){
return accountDao.selectAll();
}
}
7.建立Controller层,AccountController
package com.chenbin.securitydemo.mappertest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
public class AccountController {
@Autowired
private AccountService accountService;
@RequestMapping("/")
public List<Account> hello(){
return accountService.hello();
}
}
8. Application主类添加mapper位置
@MapperScan(basepackage={" "})(写实现mapper接口的dao的位置)
package com.chenbin.securitydemo;
import com.chenbin.securitydemo.mappertest.Account;
import com.chenbin.securitydemo.mappertest.AccountDao;
import com.chenbin.securitydemo.mappertest.AccountService;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@SpringBootApplication
@RestController
@MapperScan( basePackages = {"com.chenbin.securitydemo.mappertest"})
public class SecuritydemoApplication {
public static void main(String[] args) {
SpringApplication.run(SecuritydemoApplication.class, args);
}
}