Springboot数据访问

Springboot配置Druid

pom.xml配置

<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.41</version>
</dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.0.9</version>
</dependency><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version>
</dependency>

数据库加密

java –cp druid-1.0.18.jar com.alibaba.druid.filter.config.ConfigTools 你的密码

yml.properties配置

server:port: 8080#数据库密码加密
password: Biyu5YzU+6sxDRbmWEa3B2uUcImzDo0BuXjTlL505+/pTb+/0Oqd3ou1R6J8+9Fy3CYrM18nBDqf6wAaPgUGOg==spring:datasource:driver-class-name: com.mysql.jdbc.Driverusername: rootpassword: ${password}url: jdbc:mysql://192.168.31.140:3306/test?useUnicode=true&amp;characterEncoding=utf-8&autoReconnect=true&useSSL=falsetype: com.alibaba.druid.pool.DruidDataSource# 初始化大小,最小,最大initialSize: 5minIdle: 5maxActive: 20# 配置获取连接等待超时的时间maxwait: 60000# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒time-between-eviction-runs-millis: 60000# 配置一个连接在池中最小生存的时间,单位是毫秒min-evictable-idle-time-millis: 300000validation-query: SELECT 1 FROM DUALtest-while-idle: truetest-on-borrow: falsetest-on-return: falsepool-prepared-statements: true# 配置监控拦截系统,去掉后监控界面sql无法统计,'wall'用于防火墙filters: stat,wall,log4j,configmaxPoolPreparedStatementPerConnectionSize: 20useGlobalDataSourceStat: true# 通过connectProperties属性来打开mergeSql功能;慢SQL记录connection-properties: durid.stat.mergeSql=true;druid.stat.slowSqlMillis=500mybatis:mapper-locations: classpath:mapper/*.xmlconfiguration:# 开启驼峰转换map-underscore-to-camel-case: true

config配置类

由于spring boot 目前还不直接支持druid,所以需要手动配置DataSource

src/main/java/com/hui/config/DruidConfig.java

package com.hui.config;import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.support.http.StatViewServlet;
import com.alibaba.druid.support.http.WebStatFilter;
import org.springframework.boot.context.properties.ConfigurationProperties;
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;import javax.sql.DataSource;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;@Configuration
public class DruidConfig {/*** 由于spring boot 目前还不直接支持druid,所以需要手动配置DataSource* @return*/@Bean@ConfigurationProperties(prefix = "spring.datasource")public DataSource druid(){return new DruidDataSource();}/*** 配置Druid的监控,配置一个管理后台的servlet* @return*/@Beanpublic ServletRegistrationBean statViewServlet(){ServletRegistrationBean bean=new ServletRegistrationBean(new StatViewServlet(),"/druid/*");Map<String,String> initParams=new HashMap<>();//所有需要配置的参数来源于类:ResourceServletinitParams.put("loginUsername","admin"); //登录druid监控后台的登录名initParams.put("loginPassword","123456"); //登录druid监控后台的密码//允许哪个ip可以登录,不写默认是允许所有的ip主机均可访问initParams.put("allow","");//禁止哪个ip主机登录,以下配置表示192.168.15.21的主机不能登录initParams.put("deny","192.168.15.21");bean.setInitParameters(initParams);return bean;}/*** 配置Druid的监控,配置一个web监控的filter* @return*/@Beanpublic FilterRegistrationBean webStatFilter(){FilterRegistrationBean bean=new FilterRegistrationBean();bean.setFilter(new WebStatFilter());Map<String,String> initParams=new HashMap<>();//exclusions表示哪些请求不被拦截initParams.put("exclusions","*.js,*.css,/druid/*");bean.setInitParameters(initParams);//拦截所有的请求bean.setUrlPatterns(Arrays.asList("/*"));return bean;}
}

Druid Web地址

启动Springboot项目,然后访问:http://localhost:8080/druid/index.html

用户名:admin 密码:123456

Mybatis逆向工程+JPA

只操作JPA

逆向工程生成的User类需要做修改,加上一下注解

@Entity
@Table(name = "user")
public class User {@Id    //主键@GeneratedValue(strategy = GenerationType.IDENTITY)   //设置主键生成策略为自增private Integer userid;@Column(name = "username")    //列名private String username;@Column(name = "userage")private Integer userage;@Column(name = "date")private Date date;

编写UserRepository接口继承JpaRepository

JpaRepository中的参数:

User:对应的pojo类

Integer:对应的主键

package com.hui.dao;import com.hui.pojo.User;
import org.springframework.data.jpa.repository.JpaRepository;public interface UserRepository extends JpaRepository<User, Integer> {}

直接使用JpaRepository中的方法

@RestController
public class UserController{@Autowiredprivate UserRepository userRepository;@GetMapping("/userone/{userId}")public User findUserOne(@PathVariable Integer userId){return userRepository.findById(userId).orElse(null);}
}

注意:这里不能使用方法:userRepository.findOne(userId);会报错,原因应该Springboot版本问题,低版本可以用,但是2.0以后的版本不行

Mybatis+JPA的整合

暂时没有整合成功,这个后续再研究

Springboot数据访问相关推荐

  1. springboot数据访问基本操作步骤

    springboot数据访问基本操作步骤 步骤一:创建一个springboot项目 配置pom.xml依赖(此阶段我没有配置web场景启动器) <?xml version="1.0&q ...

  2. SpringBoot数据访问Mybatis注解版,配置版,注解与配置一体版

    SpringBoot数据访问Mybatis注解版,配置版,注解与配置一体版 注解版: 1.改druid 连接池,不改可以跳过这步 添加依赖 <dependency><groupId& ...

  3. SpringBoot数据访问配置

    文章目录 一.简介 二.特性 三.主要模块 四.SpringBoot整合基本JDBC与数据源 SpringBoot整合JDBC SpringBoot整合Druid数据源 一.简介 对于数据访问层而言, ...

  4. Springboot笔记(6):Springboot数据访问/雷神

    目录 0.写在前面 1.SQL 1.1.数据源的自动配置-HikariDataSource 1.1.1.导入JDBC场景 1.1.2.分析自动配置 1.1.3.修改配置项 1.1.4.测试 总结: 2 ...

  5. SpringBoot:Mybatis + Druid 数据访问

    SpringBoot:Mybatis + Druid 数据访问 文章目录 SpringBoot:Mybatis + Druid 数据访问 1.简介 2.JDBC 3.CRUD操作 4.自定义数据源 D ...

  6. 详细SpringBoot教程之数据访问

    写在前面 鉴于有人留言说想要学习SpringBoot相关的知识,我这里打算写一个SpringBoot系列的相关博文,目标呢是想让看了这一系列博文的同学呢,能够对SpringBoot略窥门径,这一系列的 ...

  7. SpringBoot 之 数据访问

    3.数据访问 3.1.SQL 3.1.1.数据源的自动配置-HikariDataSource ① 导入JDBC场景 <dependency><groupId>org.sprin ...

  8. SpringBoot 2 访问 Pivotal GemFire 数据

    开篇词 该指南将引导你使用 Pivotal GemFire 的数据服务集来构建应用. 你将创建的应用 我们将使用功能强大的 Spring Data for Pivotal GemFire 库来存储和检 ...

  9. SpringBoot的Web开发入门案例9—数据访问

    SpringBoot的Web开发入门案例9-数据访问 创建一个springboot项目(打包方式为jar包): 勾选Spring Web选项,勾选JDBC API和MySQL Driver pom文件 ...

最新文章

  1. Java相当于C#中的#region
  2. Linux脚本 输入90为优秀
  3. python中词云图是用来描述_python中实现词云图
  4. html5判断file选择状态,HTML input type=file选择图片立即显示
  5. WdatePicker日历控件使用方法(转)
  6. NET牛人应该知道些什么
  7. 使用redis分布式锁+lua脚本实现分布式定时任务控制demo
  8. TypeScript泛型约束
  9. Android大牛博客集
  10. 对路径“C:\Program Files (x86)\gwssi\CPC客户端\CheckWord.xml”的访问被拒绝。
  11. Win7动态主题制作
  12. php中strtotime与mktime的Y2K38漏洞(时间最长为2038年)
  13. 质量回顾分析系统软件(QRS)
  14. 1063 Set Similarity (25 分) java 题解
  15. 微信的服务器域名地址,微信服务器域名设置
  16. 大众点评评论抓取-CSS加密破解
  17. 如何用html5创作一个游戏
  18. Android仿微信气泡聊天界面设计
  19. 2003-2019年各省数据GDP、人均GDP、城镇化率、年末人口数、人口自然增长率
  20. 微信小程序wx.request请求封装,和跨域的解决。

热门文章

  1. 年轻人,别来北方发展
  2. scribe安装笔记
  3. 前端学习之select控件的使用2,省市县三级联动选择,select控件属性、方法、事件的综合应用...
  4. DAC8760+STM32F407单电源电路硬件测试
  5. 【HTML CSS】个人整理笔记
  6. 超级菜鸟怎么学习数据分析?
  7. C#中窗体tag作用
  8. 故事・ことわざ・四字熟語a
  9. SpringCloud Gateway获取post请求体(request body)
  10. ORA-20000:ORU-10027:buffer overflow,limit of 2000 bytes