Druid数据源yml配置文件
spring: datasource: druid: # 数据源基本配置 username: root password: root driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://localhost:3306/db_test type: com.alibaba.druid.pool.DruidDataSource # 数据源其他配置 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,去掉后监控界面sql无法统计,'wall'用于防火墙 filters: stat,wall,slf4j maxPoolPreparedStatementPerConnectionSize: 20 useGlobalDataSourceStat: true connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500
Druid数据源java配置文件
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 DruidDataSourceConfig { @ConfigurationProperties(prefix = "spring.datasource.druid") @Bean public DataSource druid(){ return new DruidDataSource(); } /** * 配置Druid的监控 * 1、配置一个管理后台的Servlet * @return */ @Bean public ServletRegistrationBean statViewServlet(){ ServletRegistrationBean bean=new ServletRegistrationBean(new StatViewServlet(),"/druid/*"); Map<String,String> initParams=new HashMap<>(); initParams.put("loginUsername","admin"); initParams.put("loginPassword","admin"); initParams.put("allow","");//默认就是允许所有访问 initParams.put("deny","192.168.15.21"); bean.setInitParameters(initParams); return bean; } /** * 2、配置一个web监控的filter * @return */ @Bean public FilterRegistrationBean webStatFilter(){ FilterRegistrationBean bean=new FilterRegistrationBean(); bean.setFilter(new WebStatFilter()); Map<String,String> initParams = new HashMap<>(); initParams.put("exclusions","*.js,*.css,/druid/*"); bean.setInitParameters(initParams); bean.setUrlPatterns(Arrays.asList("/*")); return bean; } }
MyBatis java配置文件
@Configuration public class MyBatisConfig { @Bean public ConfigurationCustomizer configurationCustomizer(){ return new ConfigurationCustomizer() { @Override public void customize(org.apache.ibatis.session.Configuration configuration) { //-自动使用驼峰命名属性映射字段 userId user_id configuration.setMapUnderscoreToCamelCase(true); //使用列别名替换列名 select user as User configuration.setUseColumnLabel(true); } }; } }
开启@Mapper注解扫描
dao层
@Mapper public interface EmployeeMapper { @Options(useGeneratedKeys = true,keyProperty = "emp.empNo") @Insert("INSERT INTO `employee_emp` (`empname`, `sex`, `hiredate`, `deptno`) VALUES (#{emp.empName},#{emp.sex},#{emp.hireDate},#{emp.dept.deptNo})") int addEmp(@Param("emp") Employee employee); @Delete("DELETE FROM employee_emp WHERE employee_emp.empno=#{id}") int deleteEmp(Integer id); @Update("UPDATE `employee_emp` SET `empname`=#{emp.empName} WHERE (`empno`=#{emp.empNo})") int updateEmp(@Param("emp") Employee employee); @Select("SELECT * FROM employee_emp WHERE empno=#{id}") Employee queryEmp(Integer id); }
测试类
@RunWith(SpringRunner.class) @SpringBootTest public class EmployeeMapperTest { @Autowired private EmployeeMapper employeeMapper; @Test public void addEmp() { Dept dept=new Dept(); dept.setDeptNo(5); Employee employee=new Employee("sa","男",new Date(),dept); int i = employeeMapper.addEmp(employee); System.err.println("受影响的行数: "+i); } @Test public void deleteEmp() { int i = employeeMapper.deleteEmp(6); System.err.println("受影响的行数: "+i); } @Test public void updateEmp() { Employee employee=new Employee(); employee.setEmpName("sadfv"); employee.setEmpNo(7); int i = employeeMapper.updateEmp(employee); System.err.println("受影响的行数: "+i); } @Test public void queryEmp() { Employee employee = employeeMapper.queryEmp(3); System.err.println(employee); } }
红线报错解决方法:
SpringBoot 整合Druid数据源+MyBatis注解版
最新推荐文章于 2021-01-20 14:49:42 发布