一.创建文件
二.导入 Druid 数据源依赖(手动导入),创建后自动会引入 MyBatis 启动器,是由 MyBatis 官方提供的
<!-- druid 数据源 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.12</version>
</dependency>
三. Druid 全局配置 (type 值设置为com.alibaba.druid.pool.DruidDataSource)
首先创建yml文件,写入全局配置:
spring:
datasource:
username: root
password: root
url: jdbc:mysql://127.0.0.1:3306/jdbc?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavio
r=convertToNull&useSSL=true&serverTimezone=GMT%2B8
driver-class-name: com.mysql.cj.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
initialSize: 8
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,wall,logback
maxPoolPreparedStatementPerConnectionSize: 25
useGlobalDataSourceStat: true
connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500
并在后面 开启mapper包为debug显示:
logging:
level:
com.java.springboot_jdbc1.mapper: debug
四.创建对应controller,mapper,service,entity,和config包
五.在config包下创建Druid文件并配置 Druid 监控
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.servlet.Filter;
import javax.sql.DataSource;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
@Configuration
public class DruidConfig {
//绑定数据源配置
@ConfigurationProperties(prefix = "spring.datasource")
@Bean
public DataSource druid() {
DruidDataSource druidDataSource = new DruidDataSource();
return druidDataSource;
}
/**
* 配置 Druid 监控
* 1. 配置一个管理后台的 Servlet
* 2. 配置一个监控的 filter
*/
@Bean // 1. 配置一个管理后台的 Servlet
public ServletRegistrationBean statViewServlet() {
//StatViewServlet 是 配置管理后台的 servlet
ServletRegistrationBean<StatViewServlet> bean =
new ServletRegistrationBean<>(new StatViewServlet(), "/druid/*");
//配置初始化参数
Map<String, String> initParam = new HashMap<>();
//访问的用户名密码
initParam.put(StatViewServlet.PARAM_NAME_USERNAME, "root");
initParam.put(StatViewServlet.PARAM_NAME_PASSWORD, "123");
//允许访问的 ip,默认所有 ip 访问
initParam.put(StatViewServlet.PARAM_NAME_ALLOW, "");
//禁止访问的 ip
initParam.put(StatViewServlet.PARAM_NAME_DENY, "192.168.10.1");
bean.setInitParameters(initParam);
return bean;
}
/**
* 配置一个监控的 filter
* @return
*/
@Bean
public FilterRegistrationBean filter() {
FilterRegistrationBean<Filter> bean = new FilterRegistrationBean<>();
bean.setFilter(new WebStatFilter());
//配置初始化参数
Map<String, String> initParam = new HashMap<>();
//排除请求
initParam.put(WebStatFilter.PARAM_NAME_EXCLUSIONS, "*.js,*.css,/druid/*");
//拦截所有请求
bean.setUrlPatterns(Arrays.asList("/*"));
return bean;
}
}
六.创建各包相对应文件
1.service
package com.java.springboot_jdbc1.service;
import com.java.springboot_jdbc1.entity.User;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Update;
import java.util.List;
public interface UserService {
// 查询
List<User> findUserall();
// 删除
int deleteUserByid(int id);
// 更改
int updateUserByUsername(User user);
// 新增
int insertUserByUser(User user);
List<User> findUserById(int id);
}
2.mapper
package com.java.springboot_jdbc1.mapper;
import com.java.springboot_jdbc1.entity.User;
import org.apache.ibatis.annotations.*;
import java.util.List;
public interface UserMapper {
// 查询
@Select("select id,username,password from user")
List<User> findUser();
// 删除
@Delete("delete from user where id =#{id}")
int deleteUserByid(int id);
// 更改
@Update("update user set password = #{password} where username = #{username} ")
int updateUserByUsername(User user);
// 新增
@Insert("insert into user (username,password) values (#{username},#{password})")
int insertUserByUser(User user);
}
3.controller接口
package com.java.springboot_jdbc1.controller;
import com.java.springboot_jdbc1.entity.User;
import com.java.springboot_jdbc1.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
UserService userService;
@GetMapping("/getUserall")
public List<User> findUserall() {
List<User> userAll = userService.findUserall();
return userAll;
}
@DeleteMapping("/del")
public String deleteUser(int id) {
int res = userService.deleteUserByid(id);
if (res > 0) {
return "删除成功";
}
return "删除失败";
}
// 更改
@PostMapping("/update")
public String updateUser(User user) {
int res = userService.updateUserByUsername(user);
if (res > 0) {
return "删除成功";
}
return "删除失败";
}
// 新增
@PostMapping("/add")
public String addUser(User user) {
int res = userService.insertUserByUser(user);
if (res > 0) {
return "删除成功";
}
return "删除失败";
}
}