- 创建项目,勾选依赖:
至少要勾选jdbc和mysql Driver
- 配置数据库文件,也就是连接数据库的必要参数
spring:
datasource:
url: mysql 8 以上要添加时区参数,否则会报错
username:
password:
driver-class-name:
- springboot中有很多的XXX Template,我们拿来即用就行
- 配置完之后首先要查看手否配置正确,简单测试一下即可
@RestController
public class JdbcController {
@Autowired
JdbcTemplate jdbcTemplate;
@RequestMapping("/select")
public List
springboot默认数据源:class com.zaxxer.hikari.HikariDataSource
- JdbcTemplate使用
第一步:通过自动注入获取JdbcTemplate
第二步:编写方法与sql语句
第三步:执行sql语句
JdbcTemplate的具体使用请参考:Jdbc使用参考
Druid是一个高效的数据查询系统,主要解决的是对于大量的基于时序的数据进行聚合查询。数据可以实时摄入,进入到Druid后立即可查,同时数据是几乎是不可变。通常是基于时序的事实事件,事实发生后进入Druid,外部系统就可以对该事实进行查询。
- 导入依赖:
com.alibaba druid 1.1.21
引入druid数据源之后,我们就可以在springboot中配置我们自己的数据源。
spring:
datasource:
# type表示使用哪个数据源
type: com.alibaba.druid.pool.DruidDataSource
经过测试会发现,获取datasource的class会变成 com.alibaba.druid.pool.DruidDataSource
由于Druid数据源并没有注入到spring容器中,Druid中的属性也就没有值,所以我们要将其注入到spring容器中,通过yml文件给Druid中的属性赋值。
- 编写配置类,将Druid加载到spring容器中,并为其中的属性赋值
@Configuration
public class DruidConfig {
//绑定配置文件
@ConfigurationProperties(prefix = "spring.datasource")
//注入打spring容器中
@Bean
public DataSource druidDataSource(){
return new DruidDataSource();
}
}
- 后台监控
Druid 数据源具有监控的功能,并提供了一个 web 界面方便用户查看,类似安装 路由器 时,人家也提供了一个默认的 web 页面。
所以第一步需要设置 Druid 的后台管理页面,比如 登录账号、密码 等;配置后台管理;
//后台监控
@Bean
//相当于 web.xml ServletRegistrationBean
public ServletRegistrationBean servletRegistrationBean(){
ServletRegistrationBean bean = new ServletRegistrationBean<>(new StatViewServlet(),"/druid/*");
//设置后台的参数配置,比如用户名和密码等
Map initParam = new HashMap<>();
//设置用户名
initParam.put("loginUsername","admin");
//设置密码
initParam.put("loginPassword","267946");
//后台设置谁可以访问
//initParam.put("allow","localhost"); 只有本机可以访问
//initParam.put("allow",""); 为空或者为null时,表示允许所有访问
initParam.put("allow","");
bean.setInitParameters(initParam);
return bean;
}
//过滤器
@Bean
public FilterRegistrationBean filterRegistrationBean(){
FilterRegistrationBean filterBean = new FilterRegistrationBean();
//设置过滤器
filterBean.setFilter(new WebStatFilter());
Map map = new HashMap<>();
//以下的这些不用进行统计
map.put("exclusions","*.js,*.css,/druid/*");
//设置可以过滤的请求
filterBean.setInitParameters(map);
return filterBean;
}
因为springboot中内置了servlet容器,所有没有web.xml,我们可以通过这种注册Bean的形式来配置我们的Servlet,详情请参考:SpringBoot中使用Servlet
springboot整合mybatis我们在spring阶段已经学习过整合mybatis,就是使用一个包:mybatis-spring,在springboot阶段也是一样的,导入mybatis-spring-boot-starter。
- 导入依赖:
org.mybatis.spring.boot mybatis-spring-boot-starter 2.1.1
- 对应于数据库字段,写出实体类信息
- 写对应类的mapper接口
@Mapper
//被@Mapper注解的表示这是一个mybatis的mapper类
@Repository
//@Repository表示将这个注册到spring容器中
public interface UserMapper {
.....方法
}
- 编写mapper.xml文件,将mapper接口中的方法与mapper.xml中的sql语句绑定
- 如果是web应用,还要编写Controller来调用mapper层
@RestController
public class UserController {
@Autowired
private UserMapper mapper;
@RequestMapping("/show")
public List selectUserList(){
List users = mapper.selectUserList();
return users;
}
//如果传入的参数是一个实体类,可以使用&形式传递参数
//也可以使用Restful风格进行传参,前提是参数名要与实体类中的字段名一致
@RequestMapping("/saveUser/{id}/{name}/{age}")
public void saveUser(User user){
mapper.saveUser(user);
}
@RequestMapping("/delete/{id}")
public void deleteUser(@PathVariable("id") int id){
mapper.deleteUser(id);
}
}
- springboot整合mybatis
给实体类起别名以及绑定mapper.xml文件的位置,还有其他参数也可以进行配置
mybatis: # ***mapper.xml的位置 mapper-locations: classpath:mybatis/mappers/*.xml #给包下的实体类起别名 type-aliases-package: com.study.pojo
- 测试



