spring jdbctemplate使用

发布时间 2023-04-19 09:05:16作者: 挖洞404

介绍

Spring JDBCTemplate对jdbc进行了简单的封装,提供了一个JDBCTemplate对象简化JDBC的开发

使用

1、导入jar包

<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-jdbc</artifactId>
  <version>5.1.9.RELEASE</version>
</dependency>

2、创建JdbcTemplate对象

org.springframework.jdbc.core.JdbcTemplate类有三个构造方法

public JdbcTemplate() {
}
public JdbcTemplate(DataSource dataSource) {
    setDataSource(dataSource);
    afterPropertiesSet();
}
public JdbcTemplate(DataSource dataSource, boolean lazyInit) {
    setDataSource(dataSource);
    setLazyInit(lazyInit);
    afterPropertiesSet();
}
  • 一般直接使用第二个构造方法
  • 如果使用默认构造方法,可以调用setDataSource传入DataSource对象赋值
JdbcTemplate jdbcTemplate = new JdbcTemplate(ds);

3、关于ds

(1)spring内置数据源

<!-- 配置数据源 -->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="${jdbc.driverClass}"></property>
    <property name="url" value="${jdbc.url}"></property>
    <property name="username" value="${jdbc.username}"></property>
    <property name="password" value="${jdbc.password}"></property>
</bean>
<!--加载属性文件-->
<context:property-placeholder location="classpath:properties/jdbc.properties"/>

(2)第三方数据库连接池

<context:property-placeholder location="classpath:props/db.properties"/>
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
    <property name="user" value="${jdbc.username}"></property>
    <property name="password" value="${jdbc.password}"></property>
    <property name="driverClass" value="${jdbc.driverClass}"></property>
    <property name="jdbcUrl" value="${jdbc.url}"></property>
</bean>

db.properties

jdbc.driverClass=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mysite?useSSL=false&serverTimezone=UTC&characterEncoding=utf8
jdbc.username=root
jdbc.password=3145tj

4、API

<!--增删改-->
int update(String sql)
int update(String sql,Object... args)
int update(String sql,Object[] args)

<!--query-->
public <T> List<T> query(String sql, RowMapper<T> rowMapper)

queryForMap

queryForList

queryForObject