SpringBoot整合Spring Data Jpa,Druid

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;
	}
}

 

你可能感兴趣的:(springboot,jpa)