spring boot 09 整合JDBC

如果不使用mybatis,spring boot其实也给我们写好了JDBC模板,我更愿意称之为工具类

即使不用mybatis我们的数据库操作也可以变得很简洁,往下看看。

1、导入依赖

整合jdbc我们只需要导入两个依赖即可:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <scope>runtime</scope>
</dependency>
<dependency>

2、配置数据库连接

我使用的是MySQL8数据库,在application.yml中编写:

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

testdb中有一个t_user表如下:
在这里插入图片描述
只要我们配置了数据库的连接信息,spring boot就会自动帮我们注入数据源,我们可以测试一下

3、测试数据源

@Autowired
 DataSource dataSource;
 @Test
 void contextLoads() throws SQLException {
     System.out.println(dataSource.getConnection());
 }

结果:HikariProxyConnection@2043702205 wrapping com.mysql.cj.jdbc.ConnectionImpl@47a7a101

它默认的数据源是Hikari,号称最快的数据源比c3p0,dbcp,tomcat jdbc更优秀。

spring. datasource.type可以指定数据源

4、JdbcTemplate

spring boot中有很多的xxxTemplate是spring boot帮我们写好的模板,在spring-boot-autoconfigre包下。

比如:在上面包下有一个包叫jdbc,其中有一个配置类叫JdbcTemplateConfiguration

@Configuration(proxyBeanMethods = false)
@ConditionalOnMissingBean(JdbcOperations.class)
class JdbcTemplateConfiguration {

	@Bean
	@Primary
	JdbcTemplate jdbcTemplate(DataSource dataSource, JdbcProperties properties) {
		JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
		JdbcProperties.Template template = properties.getTemplate();
		jdbcTemplate.setFetchSize(template.getFetchSize());
		jdbcTemplate.setMaxRows(template.getMaxRows());
		if (template.getQueryTimeout() != null) {
			jdbcTemplate.setQueryTimeout((int) template.getQueryTimeout().getSeconds());
		}
		return jdbcTemplate;
	}

}

把JdbcTemplate 注册到了spring中,我们可以直接使用

5、测试

	@Autowired
    JdbcTemplate jdbcTemplate;
    
    @Test
    void test01(){
    	// 通过queryForList的方法查询
        String sql = "select * from t_user";
        List<Map<String, Object>> mapList = jdbcTemplate.queryForList(sql);
        System.out.println(mapList);
       
        /*
        	结果如下
			 [{username=张三, pwd=zs23, sex=1},
			 {username=李四, pwd=ls123, sex=1}, 
			 {username=王婶, pwd=ws123, sex=0},
			 {username=谭熙, pwd=tx123, sex=1}]
		*/

    }


    @Test
    void test02(){
        String sql = "delete from t_user where username=?";
        // 预编译sql
        int res = jdbcTemplate.update(sql, "张三");
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值