1.pom.xml引入Mysql依赖
mysql
mysql-connector-java
runtime
2.引入Spring Data Jpa依赖
mysql
mysql-connector-java
runtime
3.引入Druid依赖
com.alibaba
druid
1.0.29
4.修改配置文件相关内容,具体看备注:
spring:
# 数据源配置
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://6.6.6.6:3306/rigger
username:
password:
# Druid连接池配置
type: com.alibaba.druid.pool.DruidDataSource
# 初始化
initialSize: 3
# 最大
maxActive: 20
# 最小
minIdle: 3
# 最大连接等待超时时间
maxWait: 60000
# 打开PSCache,并且指定每个连接PSCache的大小
poolPreparedStatements: true
maxPoolPreparedStatementPerConnectionSize: 20
validationQuery: select 'x'
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
timeBetweenEvictionRunsMillis: 60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
minEvictableIdleTimeMillis: 300000
# 配置监控统计拦截的filters,去掉后监控界面sql将无法统计,'wall'用于防火墙
filters: stat, wall, log4j
# spring data jpa配置
jpa:
hibernate:
# 实体类有更新时,数据库表更新
ddl-auto: update
show-sql: true
format_sql: true
database-platform: org.hibernate.dialect.MySQL5InnoDBDialect
http:
# 过滤字符编码
encoding:
charset: UTF-8
enabled: true
force: true
5.添加Druid配置类
package wang.lei.rigger.Config;
import com.alibaba.druid.support.http.StatViewServlet;
import com.alibaba.druid.support.http.WebStatFilter;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* Druid连接池配置类
* @Configuration 注解用来标注配置类
*/
@Configuration
public class DriudConfig {
@Bean
public ServletRegistrationBean statViewServlet() {
// 创建servlet注册实体
ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(),
"/druid/*");
// 设置ip白名单
servletRegistrationBean.addInitParameter("allow", "127.0.0.1");
// 设置ip黑名单,如果allow与deny共同存在时,deny优先于allow
servletRegistrationBean.addInitParameter("deny", "192.168.0.1");
// 设置控制台管理用户
servletRegistrationBean.addInitParameter("loginUsername", "admin");
servletRegistrationBean.addInitParameter("loginPassword", "123456");
// 是否可以重置数据
servletRegistrationBean.addInitParameter("resetEnable", "false");
return servletRegistrationBean;
}
@Bean
public FilterRegistrationBean statFilter() {
// 创建过滤器
FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new WebStatFilter());
// 设置过滤器过滤路径
filterRegistrationBean.addUrlPatterns("/*");
// 忽略过滤的形式
filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");
return filterRegistrationBean;
}
}
6.创建实体类
package wang.lei.rigger.Entity;
import javax.persistence.*;
@Entity//注明是实体类
@Table(name = "r_demo")//对应表名
public class DemoEntity {
@Id
@GeneratedValue//主键
@Column(name = "r_id")//对应字段名
private Long id;
@Column(name = "r_name")
private String name;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "DemoEntity{" +
"id='" + id + '\'' +
", name='" + name + '\'' +
'}';
}
}
7.创建接口类
package wang.lei.rigger.Dao;
import org.springframework.data.domain.Example;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.stereotype.Repository;
import wang.lei.rigger.Entity.DemoEntity;
import java.io.Serializable;
import java.util.List;
import java.util.Optional;
@Repository
public interface DemoDao extends JpaRepository{
}
8.创建控制器进行测试:
package wang.lei.rigger.Controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import wang.lei.rigger.Dao.DemoDao;
import wang.lei.rigger.Entity.DemoEntity;
import java.util.List;
@Controller()
@RequestMapping("/demo")
public class DemoController {
@Autowired
DemoDao demoDao;
@RequestMapping("/add/{name}")
@ResponseBody
String add(@PathVariable(name = "name") String name){
DemoEntity d = new DemoEntity();
d.setName(name);
DemoEntity save = demoDao.save(d);
return save.getId()+save.getName();
}
@RequestMapping("/get")
@ResponseBody
List get(){
List all = demoDao.findAll();
return all;
}
}