Springboot数据访问
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&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数据访问相关推荐
- springboot数据访问基本操作步骤
springboot数据访问基本操作步骤 步骤一:创建一个springboot项目 配置pom.xml依赖(此阶段我没有配置web场景启动器) <?xml version="1.0&q ...
- SpringBoot数据访问Mybatis注解版,配置版,注解与配置一体版
SpringBoot数据访问Mybatis注解版,配置版,注解与配置一体版 注解版: 1.改druid 连接池,不改可以跳过这步 添加依赖 <dependency><groupId& ...
- SpringBoot数据访问配置
文章目录 一.简介 二.特性 三.主要模块 四.SpringBoot整合基本JDBC与数据源 SpringBoot整合JDBC SpringBoot整合Druid数据源 一.简介 对于数据访问层而言, ...
- Springboot笔记(6):Springboot数据访问/雷神
目录 0.写在前面 1.SQL 1.1.数据源的自动配置-HikariDataSource 1.1.1.导入JDBC场景 1.1.2.分析自动配置 1.1.3.修改配置项 1.1.4.测试 总结: 2 ...
- SpringBoot:Mybatis + Druid 数据访问
SpringBoot:Mybatis + Druid 数据访问 文章目录 SpringBoot:Mybatis + Druid 数据访问 1.简介 2.JDBC 3.CRUD操作 4.自定义数据源 D ...
- 详细SpringBoot教程之数据访问
写在前面 鉴于有人留言说想要学习SpringBoot相关的知识,我这里打算写一个SpringBoot系列的相关博文,目标呢是想让看了这一系列博文的同学呢,能够对SpringBoot略窥门径,这一系列的 ...
- SpringBoot 之 数据访问
3.数据访问 3.1.SQL 3.1.1.数据源的自动配置-HikariDataSource ① 导入JDBC场景 <dependency><groupId>org.sprin ...
- SpringBoot 2 访问 Pivotal GemFire 数据
开篇词 该指南将引导你使用 Pivotal GemFire 的数据服务集来构建应用. 你将创建的应用 我们将使用功能强大的 Spring Data for Pivotal GemFire 库来存储和检 ...
- SpringBoot的Web开发入门案例9—数据访问
SpringBoot的Web开发入门案例9-数据访问 创建一个springboot项目(打包方式为jar包): 勾选Spring Web选项,勾选JDBC API和MySQL Driver pom文件 ...
最新文章
- Java相当于C#中的#region
- Linux脚本 输入90为优秀
- python中词云图是用来描述_python中实现词云图
- html5判断file选择状态,HTML input type=file选择图片立即显示
- WdatePicker日历控件使用方法(转)
- NET牛人应该知道些什么
- 使用redis分布式锁+lua脚本实现分布式定时任务控制demo
- TypeScript泛型约束
- Android大牛博客集
- 对路径“C:\Program Files (x86)\gwssi\CPC客户端\CheckWord.xml”的访问被拒绝。
- Win7动态主题制作
- php中strtotime与mktime的Y2K38漏洞(时间最长为2038年)
- 质量回顾分析系统软件(QRS)
- 1063 Set Similarity (25 分) java 题解
- 微信的服务器域名地址,微信服务器域名设置
- 大众点评评论抓取-CSS加密破解
- 如何用html5创作一个游戏
- Android仿微信气泡聊天界面设计
- 2003-2019年各省数据GDP、人均GDP、城镇化率、年末人口数、人口自然增长率
- 微信小程序wx.request请求封装,和跨域的解决。
热门文章
- 年轻人,别来北方发展
- scribe安装笔记
- 前端学习之select控件的使用2,省市县三级联动选择,select控件属性、方法、事件的综合应用...
- DAC8760+STM32F407单电源电路硬件测试
- 【HTML CSS】个人整理笔记
- 超级菜鸟怎么学习数据分析?
- C#中窗体tag作用
- 故事・ことわざ・四字熟語a
- SpringCloud Gateway获取post请求体(request body)
- ORA-20000:ORU-10027:buffer overflow,limit of 2000 bytes