前面整合了基本的JDBC,也配置了druid数据源,那接下来就整合mybatis,整合mybatis呢,数据访问使用的
是mybatis,那mybatis要怎么用呢,下一步选择我们需要的模块,先把web来选中,首先选中MYSQL数据库驱动,
再来选择JDBC,他能帮我们来选中数据源,然后我们再来选中mybatis,mybatis的starter叫这个,
mybatis-spring-boot-starter,这个starter不是springboot官方出的,官方出的starter叫spring-boot-starter,
什么模块,这个是mybatis自己出的starter,所以我们要用mybatis要用这个starter
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
这个starter给我们引入了哪些依赖呢,我们其实也可以来看一下,这个是mybatis-spring-boot-starter,引入了mybatis,
它是3.4.5版本的,mybatis与spring的整合包,它本身也引入了spring-boot-jdbc,那我们选的时候也可以不选他,最终也会
引入进来,引入了mybatis和springboot的自动配置,这是mybatis自己来写的自动配置包,我们就把图截取下来
就引入了这么多的东西,mybatis的jar包,以及中间的整合包,和他的自动配置包,那我们接下来就来配置一下mybatis,
我们也使用druid的方式来整合进来,我们不用他原生的tomcat数据源,我们还是引用druid,
<!-- 引入druid数据源 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.8</version>
</dependency>
这个数据源的坐标我们之前用过,我把之前的配置文件也复制过来,
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.url=jdbc:mysql://localhost:3306/day20
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.initialSize=5
spring.datasource.minIdle=5
spring.datasource.maxActive=20
spring.datasource.maxWait=60000
package com.learn.config;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import javax.sql.DataSource;
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 com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.support.http.StatViewServlet;
import com.alibaba.druid.support.http.WebStatFilter;
@Configuration
public class DruidConfig {
@ConfigurationProperties(prefix="spring.datasource")
@Bean
public DataSource druid() {
return new DruidDataSource();
}
// 配置Druid的监控
// 1.配置一个管理后台的Servlet
// 2.配置一个监控的Filter
@Bean
public ServletRegistrationBean statViewServlet() {
ServletRegistrationBean bean = new ServletRegistrationBean(new StatViewServlet(),"/druid/*");
Map<String,String> initParams = new HashMap<String,String>();
initParams.put("loginUsername", "admin");
initParams.put("loginPassword", "123456");
initParams.put("allow", "");
initParams.put("deny", "192.168.15.21");
// 默认就是允许所有访问
bean.setInitParameters(initParams);
return bean;
}
// 2.配置一个web监控的filter
@Bean
public FilterRegistrationBean webStatFilter() {
FilterRegistrationBean bean = new FilterRegistrationBean();
bean.setFilter(new WebStatFilter());
Map<String,String> initParams = new HashMap<String,String>();
initParams.put("exclusions", "*.js,*.css,/druid/*");
bean.setInitParameters(initParams);
bean.setUrlPatterns(Arrays.asList("/*"));
return bean;
}
}
数据源就是这么配置能使用就行了,
localhost:8080/druid
package com.learn.bean;
public class Employee {
private Integer id;
private String NAME;
private String gender;
private String title;
private String email;
private double salary;
private Integer deptId;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getNAME() {
return NAME;
}
public void setNAME(String nAME) {
NAME = nAME;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public double getSalary() {
return salary;
}
public void setSalary(double salary) {
this.salary = salary;
}
public Integer getDeptId() {
return deptId;
}
public void setDeptId(Integer deptId) {
this.deptId = deptId;
}
@Override
public String toString() {
return "Employee [id=" + id + ", NAME=" + NAME + ", gender=" + gender + ", title=" + title + ", email=" + email
+ ", salary=" + salary + ", deptId=" + deptId + "]";
}
}
package com.learn.bean;
public class Department {
private Integer id;
private String deptName;
private String principal;
private String functional;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getDeptName() {
return deptName;
}
public void setDeptName(String deptName) {
this.deptName = deptName;
}
public String getPrincipal() {
return principal;
}
public void setPrincipal(String principal) {
this.principal = principal;
}
public String getFunctional() {
return functional;
}
public void setFunctional(String functional) {
this.functional = functional;
}
@Override
public String toString() {
return "Department [id=" + id + ", deptName=" + deptName + ", principal=" + principal + ", functional="
+ functional + "]";
}
}