Druid入门使用
导入jar包
<!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.23</version>
</dependency>
<!-- https://mvnrepository.com/artifact/log4j/log4j -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
在application.yml中配置数据库信息
spring:
datasource:
username: root
password: 123456
url: jdbc:mysql://localhost:3306/mybais?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC
driver-class-name: com.mysql.cj.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
控制类controller层
package com.lyj.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.Map;
@RestController
public class JDBCController {
@Autowired
JdbcTemplate jdbcTemplate;
private java.lang.Object Object;
//查询数据库的所有信息
@GetMapping("/userList")
public List<Map<String, Object>> userList() {
String sql = "select * from user";
List<Map<String, Object>> maps = jdbcTemplate.queryForList(sql);
return maps;
}
@GetMapping("/adduser")
public String addUser() {
String sql = "insert into mybais.user(id,name,pwd) values(4,'小明','133548')";
jdbcTemplate.update(sql);
return "add_ok";
}
@GetMapping("/updateUser/{id}")
public String updateUser(@PathVariable("id") int id) {
String sql = "update mybais.user set name=?,pwd=? where id=" +id;
//封装
Object[] objects = new Object[2];
objects[0]="小明2";
objects[1]="afddsfa";
jdbcTemplate.update(sql,objects);
return "update_ok";
}
@GetMapping("/delete/{id}")
public String deleteUser(@PathVariable("id") int id) {
String sql = "delete from mybais.user where id =?";
jdbcTemplate.update(sql,id);
return "delete _ok";
}
}
创建一个配置类DruidConfig
package com.lyj.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.HashMap;
@Configuration
public class DruidConfig {
@ConfigurationProperties(prefix = "spring.datasource")
@Bean
public DataSource druidDataSource(){
return new DruidDataSource();
}
//后台监控: web.xml
//因为Springboot内置刘路servlet容器,所以没有web.xml,替代方法:ServletRegistrationBean
@Bean
public ServletRegistrationBean statViewServlet(){
ServletRegistrationBean<StatViewServlet> bean = new ServletRegistrationBean<>(new StatViewServlet(), "/druid/*");
//后台需要人登录,账号密码配置
HashMap<String,String> initParameters = new HashMap<>();
//增加配置
initParameters.put("loginUsername","admin");//登录的key是固定的loginUsername loginPassword.不能乱写
initParameters.put("loginPassword","123456");
//允许谁访问'
initParameters.put("allow","localhost");//value为空则是全部可以访问
//禁止谁访问
//initParameters.put("kuangshen","192.168.11.123");//禁止狂神ip地址192.168.11.123访问
bean.setInitParameters(initParameters);//初始化参数
return bean;
}
//filter
public FilterRegistrationBean webStatFilter(){
FilterRegistrationBean bean = new FilterRegistrationBean();
bean.setFilter(new WebStatFilter());
//可以过滤哪些请求
HashMap<String,String> initParameters = new HashMap<>();
//*.js,*.css,/druid/*这些东西不进行统计
initParameters.put("exclusions","*.js,*.css,/druid/*");
bean.setInitParameters(initParameters);
return bean;
}
}
druid的源码位置,属性
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6Gw5Fk39-1598681718315)(https://i.loli.net/2020/08/29/Kf3sxWYd59LUmrv.png)]
ServletRegistrationBean的源码分析
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZezDaJHc-1598681718320)(https://i.loli.net/2020/08/29/UpauGjoCiTdHM4O.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5SDOsoRN-1598681718321)(https://i.loli.net/2020/08/29/xtqpf5bDCSZ8TiL.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JHGWIXHV-1598681718325)(https://i.loli.net/2020/08/29/1VoGEm3jZYUkxMl.png)]
直接点击http://localhost:8080/druid进入http://localhost:8080/druid/login.html登录页面,账号密码是自己设置的
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-E6kiFQUT-1598681718327)(https://i.loli.net/2020/08/29/iZLlR5NvsBM3guo.png)]
进入主页面
WIXHV-1598681718325)]
直接点击http://localhost:8080/druid进入http://localhost:8080/druid/login.html登录页面,账号密码是自己设置的
[外链图片转存中…(img-E6kiFQUT-1598681718327)]
进入主页面
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CWKEyDlB-1598681718328)(https://i.loli.net/2020/08/29/f2mYJdN4DI5PhiC.png)]