SpringBoot整合Spring Data Jpa,Druid

1.pom.xml引入Mysql依赖

<!--引入MySQL的依赖关系-->
<dependency>
   <groupId>mysql</groupId>
   <artifactId>mysql-connector-java</artifactId>
   <scope>runtime</scope>
</dependency>

2.引入Spring Data Jpa依赖

<!--引入MySQL的依赖关系-->
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<scope>runtime</scope>
		</dependency>

3.引入Druid依赖

<!-- alibaba druid -->
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>druid</artifactId>
			<version>1.0.29</version>
		</dependency>

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<DemoEntity, Integer>{

}

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<DemoEntity> get(){
		List<DemoEntity> all = demoDao.findAll();
		return all;
	}
}

猜你喜欢

转载自blog.csdn.net/weixin_39270764/article/details/81175582