SpringBoot整合JDBC

Posted 埋年

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot整合JDBC相关的知识,希望对你有一定的参考价值。

1、新建项目:springboot-data-jdbc ; 引入相应的模块!

在这里插入图片描述

2、编写yaml配置文件连接数据库;

spring: 
 datasource:    
  username: root    
  password: 123456
  url: jdbc:mysql://localhost:3306/sys?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8    
  driver-class-name: com.mysql.cj.jdbc.Driver

3、配置完这一些东西后,我们就可以直接去使用了,因为SpringBoot已经默认帮我们进行了自动配置;去测试类测试一下

 @SpringBootTestclass 
 SpringbootDataJdbcApplicationTests {
 //DI注入数据源   
	@Autowired    
	DataSource dataSource;
	@Test   
	public void contextLoads() throws SQLException {       
	//看一下默认数据源    
	System.out.println(dataSource.getClass());    
	//获得连接     
	Connection connection =   dataSource.getConnection();
	System.out.println(connection);       
	//关闭连接        
	connection.close();   
  }

结果:我们可以看到他默认给我们配置的数据源为 : class com.zaxxer.hikari.HikariDataSource , 我们并没有手动配置
我们来全局搜索一下,找到数据源的所有自动配置都在 :DataSourceAutoConfiguration文件:

@Import( {Hikari.class, Tomcat.class, Dbcp2.class, Generic.class, DataSourceJmxConfiguration.class})
protected static class PooledDataSourceConfiguration {   
 protected PooledDataSourceConfiguration() { 
    }
 }

可以使用 spring.datasource.type 指定自定义的数据源类型,值为 要使用的连接池实现的完全限定名。
JdbcTemplate主要提供以下几类方法:
• execute方法:可以用于执行任何SQL语句,一般用于执行DDL语句;
• update方法及batchUpdate方法:update方法用于执行新增、修改、删除等语句;batchUpdate方法用于执行批处理相关语句;
• query方法及queryForXXX方法:用于执行查询相关语句;
• call方法:用于执行存储过程、函数相关语句。
我们先编写一个Controller,注入 jdbcTemplate,编写测试方法进行访问测试;

@RestController@RequestMapping("/jdbc")
public class JdbcController {
//Map 中的 key 对应数据库的字段名,value 对应数据库的字段值   
 @GetMapping("/list")   
 public List<Map<String, Object>> userList(){        
	 String sql = "select * from employee";      
     List<Map<String, Object>> maps = jdbcTemplate.queryForList(sql);       
     return maps;   
 }       
 //新增一个用户    @GetMapping("/add")    
public String addUser(){        
   //插入语句,注意时间问题       
   String sql = "insert into employee(last_name, email,gender,department,birth)" +  " values ('小傻蛋',8529864@qq.com',1,101,'"+ new Date().toLocaleString() +"')";                                        jdbcTemplate.update(sql);           
   return "addOk"; 
 }
    //修改用户信息   
 @GetMapping("/update/{id}")    
public String updateUser(@PathVariable("id") int id){      
  //插入语句        
      String sql = "update employee set last_name=?,email=? where id="+id;        //数据       
      Object[] objects = new Object[2];       
      objects[0] = "阿杰";       
      objects[1] = "1522151@sdha.com";      
      jdbcTemplate.update(sql,objects);          
	  return "updateOk";   
	  }
    //删除用户    @GetMapping("/delete/{id}")   
 public String delUser(@PathVariable("id") int id){    
     //插入语句       
      String sql = "delete from employee where id=?";      
      dbcTemplate.update(sql,id);    
      //查询       
      return "deleteOk";  
}   
}

测试请求,结果正常;到此,CURD的基本操作,使用 JDBC 就搞定了。

以上是关于SpringBoot整合JDBC的主要内容,如果未能解决你的问题,请参考以下文章

全栈编程系列SpringBoot整合Shiro(含KickoutSessionControlFilter并发在线人数控制以及不生效问题配置启动异常No SecurityManager...)(代码片段

SpringBoot--整合JDBC

idea springboot中整合jdbc连接MySQL中,Schemas中无mybatis怎么解决?

SpringBoot整合JDBC

SpringBoot整合JDBC

SpringBoot整合JDBC