Spring:JdbcTemplate、事务
关于 =
spring对不同的持久化层技术都进行了封装:
jdbcTemplate 对JDBC进行了封装;
jar包
- 数据库驱动包;
 - JDBC 包;
 - 事务包
 
JDBC 模板的基本使用
@Test
public void demo1(){
   DriverManagerDataSource dataSource = new DriverManagerDataSource();
   dataSource.setDriverClassName("com.mysql.jdbc.Driver");
   dataSource.setUrl("jdbc:mysql:///spring_day03");
   dataSource.setUsername("root");
   dataSource.setPassword("123");
   
   JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
   jdbcTemplate.update("insert into account values (null,?,?)", " 会希",10000d);
}
连接池
数据库连接池(Connection pooling):程序启动时建立足够的数据库连接,并将这些连接组成一个连接池,由程序动态地对池中的连接进行申请、使用、释放。
连接池的机制:
- 程序初始化时创建连接池;
 - 使用时向连接池申请可用连接;
 - 使用完毕,将连接返还给连接池;
 - 程序退出时,断开所有连接,并释放资源;
 
其中:
- 最小连接数:连接池一直保持的数据库连接;
 - 最大连接数:连接池能申请的最大连接数:
- 如果数据库连接请求超过最大次数,后到的请求将被加入等待队列;
 
 
Spring 内置连接池
“org.springframework.jdbc.datasource.DriverManagerDataSource”:
- 配置内置连接池:
<!-- 配置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_day02"/> <property name="username" value="root"/> <property name="password" value="123"/> </bean>
 - 配置jdbcTemplate模板:
<!-- 配置JDBC 模板--> <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> <property name="dataSource" ref="dataSource"/> </bean>
 - 编写测试类:
- 注入 jdbcTemplate;
 
@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,?,?)", "eijux",10000d); } }
 
DBCP 连接池
- 引入dbcp 连接池的jar 包:
 - 配置连接池:
<!-- 配置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_day02"/> <property name="username" value="root"/> <property name="password" value="123"/> </bean>
 
c3p0 连接池
- 引入相应的jar 包:
 - # 配置连接池:
<!-- 配置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_day02"/> <property name="user" value="root"/> <property name="password" value="123"/> </bean>
 

