Spring框架 -- 5 Spring的JdbcTemplate操作

Spring的JdbcTemplate操作

  • JDBC相关的jar包
  • JDBCTemplate的使用
  • Spring结合连接池(C3p0)和jdbcTemplate使用

jdbcTemplate是Spring提供的操作数据库的操作,是基于JDBC实现的。

JDBC相关的jar包

    <!--Spring的JDBC模板操作-->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.31</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-jdbc</artifactId>
      <version>4.0.6.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-tx</artifactId>
      <version>4.0.6.RELEASE</version>
    </dependency>
  </dependencies>

JDBCTemplate的使用

/**
 * JDBC模板使用的介绍
 */
public class JDBCTemplate {
     
    public static void main(String[] args) {
     
        //创建对象,设置数据源
        DriverManagerDataSource dataSource = new DriverManagerDataSource();
        dataSource.setDriverClass("com.mysql.jdbc.Driver");
        dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/mybatis");
        dataSource.setUser("root");
        dataSource.setPassword("123456");

        //创建jdbcTemplate对象,设置数据源
        JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);

        //调用jdbcTemplate提供的方法
        //更新操作
//        String updateSql = "update user set sex = ? where id = ?";
//        jdbcTemplate.update(updateSql,new Object[]{1,1});

        //删除操作
        String deleteSql = "delete from user where id = ?";
        jdbcTemplate.update(deleteSql,new Object[]{
     25});

        //jdbcTemplate对数据的变更操作(update、insert、delete)都可以通过update方法进行处理

        //查询单个对象  queryForObject
        String selectSql1 = "select * from user where id = ?";
        //   public  T queryForObject(String sql, @Nullable Object[] args, RowMapper rowMapper) throws DataAccessException {
     
        User2 user2 = jdbcTemplate.queryForObject(selectSql1, new Object[]{
     1}, new UserMapper());
//        System.out.println(user2);

        //查询多个对象  query
        String selectSql2 = "select * from user where sex = ?";
        List<User2> list = jdbcTemplate.query(selectSql2, new Object[]{
     1}, new UserMapper());
        System.out.println(list);
    }
}

Spring结合连接池(C3p0)和jdbcTemplate使用

场景:操作mybatis库中的user表
通过ID查询用户信息

dao层接口

public class UserDao {
     
    private JdbcTemplate jdbcTemplate;

    public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
     
        this.jdbcTemplate = jdbcTemplate;
    }

    public User2 getUserById(Long id){
     
        //查询SQL
        String sql = "select * from user where id = ?";
        User2 user2 = jdbcTemplate.queryForObject(sql,new Object[]{
     id},new UserMapper());
        //使用jdbcTemplate模板获取数据库数据
        return user2;
    }
}

XML配置文件

<?xml version="1.0" encoding="UTF-8" ?>
<!--根标签-->
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    http://www.springframework.org/schema/aop
    http://www.springframework.org/schema/aop/spring-aop.xsd">

    <!--配置数据源-->
    <bean id="dataSource" class="com.mchange.v2.c3p0.DriverManagerDataSource">
        <!--配置连接数据库的核心配置4个参数-->
        <property name="driverClass" value="com.mysql.jdbc.Driver"/>
        <property name="user" value="root"/>
        <property name="password" value="123456"/>
        <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/mybatis"/>
     </bean>

    <!--配置jdbc模板-->
    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
        <!--配置数据源-->
        <property name="dataSource" ref="dataSource"/>
    </bean>

    <!--配置UserDao-->
    <bean id="userDao" class="com.tulun.dao.UserDao">
        <!--注入JDBC模板-->
        <property name="jdbcTemplate" ref="jdbcTemplate"/>
    </bean>

</beans>

你可能感兴趣的:(java,spring)