只要是***Template的类,就是springBOOT默认帮我们配置好了的,拿来就可以用,例如jdbcTemplate
配置数据库连接
#配置数据库连接
spring:
datasource:
username: root
password: root
url: jdbc:mysql://localhost:3306/study?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8
driver-class-name: com.mysql.cj.jdbc.Driver
mysql时区:UTC 是标准时间参照,GMT(格林威治时间)、CST(北京时间)、PST(太平洋时间)等等是具体的时区。由于 UTC +0 的特殊性,所以有时也把 GMT 当成参照,以下写法等同:GMT: UTC +0 = GMT: GMT +0
CST: UTC +8 = CST: GMT +8
PST: UTC -8 = PST: GMT -8
controller
@RestController
public class JdbcController {
@Autowired
JdbcTemplate jdbcTemplate;
/**
* 当没有实体类的时候,怎么查询数据库的结构以及数据
*/
@RequestMapping("/JDBC")
public List<Map<String,Object>> findAll(){
String sql = "select * from shop";
List<Map<String, Object>> maps = jdbcTemplate.queryForList(sql);
return maps;
}
//使用jdbcTemplate还可以直接王数据库里面添加数据
@RequestMapping("/add")
public String addData(){
String sql = "insert into study.shop(id,name,money) values (3,‘cdl‘,25000)";
jdbcTemplate.update(sql);
return "add_success";
}
}
test
@SpringBootTest
class Springboot05DataApplicationTests {
@Autowired
DataSource dataSource;
//测试数据库是否连接成功
@Test
void contextLoads() throws SQLException {
//查看默认数据源 class com.zaxxer.hikari.HikariDataSource
System.out.println(dataSource.getClass());
//获得数据库连接
Connection connection = dataSource.getConnection();
System.out.println(connection); //wrapping com.mysql.cj.jdbc.ConnectionImpl@6e1b9411
//只要看到 ***template什么的类,就是springBOOT默认帮我们配置好了的,拿来就可以用,例如jdbcTemplate
// //关闭连接
connection.close();
}
}
Druid
扩展:HikariDataSource
1.引入数据源,https://mvnrepository.com/search?q=druid
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.2.3</version>
</dependency>
2.在application.yml增加druid专有配置
#SpringBoot默认是不注入这些的,需要自己绑定
#druid数据源专有配置
initialSize: 5
minIdle: 5
maxActive: 20
maxWait: 60000
timeBetweenEvictionRunsMillis: 60000
minEvictableIdleTimeMillis: 300000
validationQuery: SELECT 1 FROM DUAL
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
poolPreparedStatements: true
#配置监控统计拦截的filters,stat:监控统计、log4j:日志记录、wall:防御sql注入
#如果允许报错,java.lang.ClassNotFoundException: org.apache.Log4j.Properity
#则导入log4j 依赖就行
filters: stat,wall,log4j
maxPoolPreparedStatementPerConnectionSize: 20
useGlobalDataSourceStat: true
connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500
3.编写配置类,实现druid的监控功能
@Configuration
public class DruidConfig {
//将自定义的容器绑定到springboot中,不需要springboot自动创建
@Bean
@ConfigurationProperties(prefix = "spring.datasource")
public DataSource dataSource(){
return new DruidDataSource();
}
//实现后台监控
//因为springboot内置了servlet容器,所以没有web.xml,替代方法ServletRegistrationBean
@Bean
public ServletRegistrationBean statViewServlet(){
ServletRegistrationBean<StatViewServlet> bean = new ServletRegistrationBean<>(new StatViewServlet(),"/druid/*");
//后台需要有人登录
HashMap<String, String> hashMap = new HashMap<>();
//增加配置 登录的key是固定 loginUsername loginPassword
hashMap.put("loginUsername","admin");
hashMap.put("loginPassword","123456");
//允许谁可以访问
hashMap.put("allow","");
//不允许谁访问
hashMap.put("cdl","127.0.0.1");
bean.setInitParameters(hashMap);//设置初始化参数
return bean;
}
}
5.浏览器访问localhost:8080/druid即可
6.执行crud代码,查看sql执行情况
配置过滤器
//配置过滤器
@Bean
public FilterRegistrationBean webStatFilter(){
FilterRegistrationBean<Filter> bean = new FilterRegistrationBean<>();
bean.setFilter(new WebStatFilter());
//可以过滤那些请求呢
HashMap<String, String> map = new HashMap<>();
//这些不统计
map.put("exclusions","*.js,*.css,/druid/*");
bean.setInitParameters(map);
return bean;
}
1.导包
<!-- mybatis-spring-boot-starter 不是spring官方的,是mybatis自己整合的,以spring-boot开头才是spring官方的 -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.4</version>
</dependency>
2.配置文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.cdl.mapper.UserMapper">
</mapper>
3.mybatis配置
#配置数据库连接
spring:
datasource:
username: root
password: root
url: jdbc:mysql://localhost:3306/study?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8
driver-class-name: com.mysql.cj.jdbc.Driver
#整合mybatis
mybatis:
type-aliases-package: com.cdl.pojo
mapper-locations: classpath:mybatis/mapper/*.xml
4.编写sql
5.调用
原文:https://www.cnblogs.com/cdlszl/p/14192171.html