SpringJDBC

一. Spring的JDBC模板

  1.Spring提供了很多持久层的模板类简化编程

    

  2.实现

    (1)创建数据库和表

    (2)导入相关jar

      

    (3)创建测试类

@Test
// JDBC模板的基本使用:
public void demo1(){
  DriverManagerDataSource dataSource = new DriverManagerDataSource();
  dataSource.setDriverClassName("com.mysql.jdbc.Driver");
  dataSource.setUrl("jdbc:mysql:///spring_db03");
  dataSource.setUsername("root");
  dataSource.setPassword("123");

  JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
  jdbcTemplate.update("insert into account values (null,?,?)", "小明",10000);
}

  3.将连接池交给Spring来管理

    (1)Spring内置连接池的配置

<!-- 配置Spring的内置连接池 -->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
  <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
  <property name="url" value="jdbc:mysql:///spring_db02"/>
  <property name="username" value="root"/>
  <property name="password" value="123"/>
</bean>      

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

    (2)测试

       @RunWith(SpringJUnit4ClassRunner.class)

@ContextConfiguration("classpath:applicationContext.xml")

public class SpringDemo2 {

@Resource(name="jdbcTemplate")

private JdbcTemplate jdbcTemplate;

@Test

public void demo1(){

jdbcTemplate.update("insert into account values (null,?,?)", "小红",10000);

}

}

  4.Spring配置DBCP连接池

    (1)导入jar

      

    (2)连接池配置

           <!-- 配置DBCP连接池 -->

    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">

    <property name="driverClassName" value="com.mysql.jdbc.Driver"/>

    <property name="url" value="jdbc:mysql:///spring_db02"/>

    <property name="username" value="root"/>

    <property name="password" value="123"/>

    </bean>

  5.Spring配置c3p0连接池

    (1)导入jar

      

    (2)连接池配置

         <!-- 配置C3P0连接池 -->

    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">

    <property name="driverClass" value="com.mysql.jdbc.Driver"/>

    <property name="jdbcUrl" value="jdbc:mysql:///spring_db02"/>

    <property name="user" value="root"/>

    <property name="password" value="123"/>

    </bean>

 

  6.JDBC模板的数据库操作

     @RunWith(SpringJUnit4ClassRunner.class)

@ContextConfiguration("classpath:applicationContext.xml")

public class SpringDemo3 {

  @Resource(name="jdbcTemplate")

  private JdbcTemplate jdbcTemplate;

  @Test

  // 插入操作

  public void demo1(){

    jdbcTemplate.update("insert into account values (null,?,?)", "小希",10000);

  }

  @Test

  // 修改操作

  public void demo2(){

    jdbcTemplate.update("update account set name=?,money =? where id = ?", "小雨",10000,5);

  }

@Test

// 删除操作

public void demo3(){

jdbcTemplate.update("delete from account where id = ?", 5);

}

@Test

// 查询一条记录

public void demo4(){

Account account = jdbcTemplate.queryForObject("select * from account where id = ?", new MyRowMapper(), 1);

System.out.println(account);

}

@Test

// 查询所有记录

public void demo5(){

List<Account> list = jdbcTemplate.query("select * from account", new MyRowMapper());

for (Account account : list) {

  System.out.println(account);

  }

  }

 

  class MyRowMapper implements RowMapper<Account>{

  @Override

  public Account mapRow(ResultSet rs, int rowNum) throws SQLException {

Account account = new Account();

account.setId(rs.getInt("id"));

account.setName(rs.getString("name"));

account.setMoney(rs.getDouble("money"));

return account;

}

}

}

原文地址:https://www.cnblogs.com/djk-bk-ing/p/10494997.html