spring+dao+jdbctemplate+datasource配置开发样例

来源:互联网 发布:linux创建用户所在群组 编辑:程序博客网 时间:2024/06/05 15:16

http://blog.csdn.net/Trigl/article/details/50934675?locationNum=1&fps=1

1 配置数据源

Spring并没有提供数据源连接池实现,但是apache的DBCP是一个不错 选择,DBCP包含了多个提供连接池功能的数据源,其中BasicDataSource是最常使用的,在XML中的配置如下:

    <!-- 数据源定义 -->    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"        destroy-method="close">        <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />        <property name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:orcl" />        <property name="username" value="KFDB" />        <property name="password" value="KFDB" />        <!-- 池启动时创建的连接数量 -->        <property name="initialSize" value="1" />        <!-- 同一时间可从池中分配的最多连接数,如果设置为0,表示无限制 -->        <property name="maxActive" value="50" />        <!-- 池里不会被释放的最多空闲连接数,如果设置为0,表示无限制 -->        <property name="maxIdle" value="5" />        <!-- 在不创建新连接的情况下,池中保持空闲的最小连接数 -->        <property name="minIdle" value="15" />        <!-- 在抛出异常之前,池等待连接回收的最大时间(当没有可用连接时),如果设置为-1,表示无限等待(毫秒) -->        <property name="maxWait" value="10000" />        <!-- 空闲池空闲连接激活线程的运行间隔时间(毫秒) -->        <property name="timeBetweenEvictionRunsMillis" value="60000" />        <!-- 连接在池中保持空闲而不被回收的最大时间(毫秒) -->        <property name="minEvictableIdleTimeMillis" value="10000" />    </bean>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

2 使用SimpleJdbcTemplate访问数据库

在DAO层装配SimpleJdbcTemplate

package com.trigl.springjdbc;import org.springframework.jdbc.core.simple.SimpleJdbcTemplate;public class UserDao1 {    private SimpleJdbcTemplate jdbcTemplate;    public void setJdbcTemplate(SimpleJdbcTemplate jdbcTemplate) {        this.jdbcTemplate = jdbcTemplate;    }    private static final String SQL_INSERT_USER ="insert into jdbc_test (user_id, name, password, realname, email) values (seq_user.nextval, ?, ?, ?, ?)";    public void addUser(User user) {       jdbcTemplate.update(SQL_INSERT_USER,  user.getUsername(), user.getPassword(),user.getRealName(),user.getEmail());        System.out.println("新增用户成功!用户信息为:" + user);        }}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

注意这里必须有setter方法,因为装配bean就是通过setter方法实现的。

XML中配置SimpleJdbcTemplate

    <!-- SimpleJdbcTemplate -->    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.simple.SimpleJdbcTemplate">        <constructor-arg ref="dataSource"></constructor-arg>    </bean>    <!-- userDao1 -->    <bean id="userDao1" class="com.trigl.springjdbc.UserDao1">        <property name="jdbcTemplate" ref="jdbcTemplate"></property>    </bean>

测试类

package com.trigl.springjdbc;

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;

publicclassUserDao1Test {

publicstaticvoidmain(String[] args) {

ApplicationContext ctx =new ClassPathXmlApplicationContext("config/bean.xml");

UserDao1 userDao1 = (UserDao1)ctx.getBean("userDao1");

User user =new User("Trigl","123456","白鑫","18810690994@163.com");

userDao1.addUser(user);

}

}

原创粉丝点击