SpringData的jdbc和durid
创建一个项目,勾选以下选项
项目构建完成后pom.xml已导入(springboot默认导入数据库驱动为8.0,要使用低版本需要手动改版本)
编写yaml配置文件连接数据库;
spring: datasource: username: root password: 123 url: jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=utf-8 driver-class-name: com.mysql.jdbc.Driver #springBoot数据库驱动默认为mysql8.0版本,使用8.0以下版本的数据库需要在pom.xml手动更改数据库驱动版本
因为SpringBoot已经默认进行了自动配置;去测试类测试一下
@Test void contextLoads() throws SQLException { //查看一下默认的数据源 :class com.zaxxer.hikari.HikariDataSource System.out.println(dataSource.getClass()); //获得数据库连接 Connection connection=dataSource.getConnection(); System.out.println(connection); //xxxx Template:SpringBoot 已经配置好模板bean,拿来即用 CRUD //关闭 connection.close(); }
查看控制台,输出为:
class com.zaxxer.hikari.HikariDataSource
说明没有问题
HikariDataSource 号称 Java WEB 当前速度最快的数据源本文来源gao.dai.ma.com搞@代*码#网,相比于传统的 C3P0 、DBCP、Tomcat jdbc 等连接池更加优秀;
可以使用 spring.datasource.type 指定自定义的数据源类型,值为 要使用的连接池实现的完全限定名。
- 有了数据库连接,就可以 CRUD 操作数据库了。使用对象 JdbcTemplate进行操作。
- 即使不使用第三方第数据库操作框架,如 MyBatis等,Spring 本身也对原生的JDBC 做了轻量级的封装,即JdbcTemplate。
- 数据库操作的所有 CRUD 方法都在 JdbcTemplate 中。
JdbcTemplate主要提供以下几类方法:
- execute方法:可以用于执行任何SQL语句,一般用于执行DDL语句;
- update方法及batchUpdate方法:update方法用于执行新增、修改、删除等语句;batchUpdate方法用于执行批处理相关语句;
- query方法及queryForXXX方法:用于执行查询相关语句;
- call方法:用于执行存储过程、函数相关语句。
然后进行编写测试类,进行crud
创建一个控制类,JDBCController.java
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RestController; import java.util.List; import java.util.Map; @RestController public class JDBCController { @Autowired JdbcTemplate jdbcTemplate; //查询数据库的所有信息 //没有实体类,数据库中的东西,怎么获取?map @GetMapping("userList") public List<Map<String,Object>> userList(){ String sql="select*from user"; List<Map<String,Object>> mapList=jdbcTemplate.queryForList(sql); return mapList; } //添加一个用户 @GetMapping("/addUser") public String addUser(){ String sql="insert into mybatis.user(name,pwd) values('笑','123456')"; int n= jdbcTemplate.update(sql); return String.valueOf(n); } //更改一个用户 @GetMapping("/updateUser/{id}") public String updateUser(@PathVariable("id") int id){ String sql="update mybatis.user set name=?,pwd=? where id="+id; //封装 Object[] objects=new Object[2]; objects[0] ="小明2"; objects[1] ="456"; int n= jdbcTemplate.update(sql,objects); return String.valueOf(n); } //删除一个用户 @GetMapping("/deleteUser/{id}") public String deleteUser(@PathVariable("id") int id){ String sql="delete from mybatis.user where id=?"; int n= jdbcTemplate.update(sql,id); return String.valueOf(n); } }