SpringBoot整合JDBC(复习JDBC基本操作)

1.由于springboot的特性,第一只需要导入了jdbc的驱动(创建时springbot项目时初始时勾选就OK),第二需要数据源的配置像下面这样,用的是yaml的配置形式,

spring:
  datasource:
    username: "root"
    password: "123456"
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/mybatis?useSSL=false&useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai

url中都是jdbc:mysql://localhost:3306(mysql默认的)/数据名称?一些参数,例如时区,编码,SSL的设置。

 那个mybatis是数据库的一个名字,连接的是mysql中的mybatis数据库

便会自动产生对象datasource,通过自动配置datasource对象获得数据库连接,拿到数据库连接就可以用JDBC对数据库进行操作了。

SpringBoot中默认的数据源是class com.zaxxer.hikari.HikariDataSource

@SpringBootTest
class Springboot04DataApplicationTests {

    @Autowired
    DataSource dataSource;
    @Test
    void contextLoads() throws SQLException {

        //查看一下默认的数据源: class com.zaxxer.hikari.HikariDataSource
        System.out.println(dataSource.getClass());

        //拿到数据库连接就可以用jdbc对数据库进行操作了
        Connection connection = dataSource.getConnection();
        System.out.println(connection);

       //关闭
        connection.close();
    }

}

2. 遇见 XXXX Template:SpringBoot已经配置好模板bean,拿来即用

例如JDBCTemplate,RedisTemplate

完成上面操作后SpringBoot会注册了JdbcTemplate的Bean,只需要数据源(SpringBoot默认提供了)与Jdbc的配置文件(yaml形式,上面已经配置),所以可以直接拿来用

3.编写Controller层测试

首先自动注入JdbcTemplate对象

因为懒得编写实体类,所以若想获取数据库里的内容,就要用万能的Map

@RestController
public class JDBCController {

    @Autowired
    JdbcTemplate jdbcTemplate;

    @GetMapping("/userList")
    //查询数据库的所有信息
    public List<Map<String, Object>> userList(){
        String sql = "select * from mybatis.user";
        //调用JdbcTemplate中封装好的方法,只需要传sql语句
        List<Map<String, Object>> maps = jdbcTemplate.queryForList(sql);
        return maps;

    }
}

回顾一下拼接sql语句 与占位符 (有sql注入攻击警告,只是例子,最好不要用拼接)

    @GetMapping("/updateUser/{id}")
    public String updateUser(@PathVariable int id){
        String sql = "update mybatis.user set name=?,pwd=? where id=" + id;
        Object[] object = new Object[2];
        object[0] = "小明2";
        object[1] = "zzzzzz";
        jdbcTemplate.update(sql,object);
        return "update-ok";
    }

在jdbc中增删改全用update方法去实现。查询是query

最好还是用占位符

    @GetMapping("/deleteUser/{id}")
    public String deleteUserByid(@PathVariable int id){
        String sql = "delete from mybatis.user where id = ?";

        jdbcTemplate.update(sql,id);
        return "deleteUser-ok";
    }

JdbcTemplate提供的update方法中,后面的id参数表示的是占位符的值

这样全在Controller层高耦合,所以只是为了复习一下SpringBoot如何整合Jdbc

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值