• spring中的数据源


    1.DBCP数据源,

    利用该数据源需要依赖Commons-pool连接池,即要用到commons-pool.jar

    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destory-method="close">

    <property name="driverClassName"><value>oracle.jdbc.driver.OracleDriver</value></property>
    <property name="url">
    <value>jdbc:oracle:thin:@192.168.10.121:1521:HiFinance</value>
    </property>
    <property name="username"><value>scott</value></property>
    <property name="password"><value>tiger</value></property>

    BasicDataSource提供了close()方法关闭数据源,必须设定destory-method="close“属性

    一些常用的属性:

    1)defaultAutoCommit:设置从数据源中返回的连接是否采用自动提交机制,默认是FALSE

    2)defaultReadOnly:设置数据源是否仅能执行只读操作,默认为false;

    3)maxActive:最大连接数据库连接数,0表示无限制

    4)maxIdle:最大等待连接中的数量,0表示无限制

    5)maxWait:最大等待秒数,单位是毫秒,超出时间会报出错误信息

    6)validationQuery:用于验证连接是否成功查询SQL语句,Sql语句必须至少要返回一行数据,如:

    可以简单的设置为:select count(*)from user;

    7)removeAbandoned:是否自我中断,默认FALSE

    2.JNDI数据源

    spring专门提供引用JNDI资源的JndiObjectFactoryBean类,如:

    <bean id="dataSource" class="org.springfrmework.jndi.JndiObjectFactory">

    <property name="jndiName" value="java:comp/env/jdbc/bbt"/>//名字jdbc/bbt

    </bean>

    使用jee命名空间:<jee:jndi-lookup id="dataSource " jndi-name="java:comp/env/jdbc/bbt"/>

    写获取数据库工具类

       package com.lavasoft.dbtest;
    import org.apache.commons.logging.Log;
    import org.apache.commons.logging.LogFactory;

        import javax.sql.DataSource;
    import java.sql.Connection;
    import java.sql.SQLException;
    import java.sql.CallableStatement;

        /**
    * Created by IntelliJ IDEA.
    * File: DBUtil.java
    * User: leizhimin
    * Date: 2008-2-21 14:26:30
    * 数据库工具
    */
    public final class DBUtil {
    private static final Log log = LogFactory.getLog(DBUtil.class);

            /**
    * 获取系统的数据源
    *
    * @return DataSource
    */
    public static DataSource getDataSource() {
    DataSource dataSource = null;
    try {
    dataSource = (DataSource) ContextHelper.getContext().getBean("rptds");
    } catch (Exception e) {
    log.error("获取数据源出错,请检查Spring数据源配置!");
    }
    return dataSource;
    }

            /**
    * 获取数据库连接
    *
    * @return Connection
    */
    public static Connection makeConnection() {
    Connection conn = null;
    try {
    conn = getDataSource().getConnection();
    } catch (SQLException e) {
    log.error("通过数据源获取数据库连接发生异常!");
    e.printStackTrace();
    }
    return conn;
    }

            /**
    * 执行没有参数的SQL过程
    *
    * @param procedureName 存储过程名字
    * @return boolean      返回存储过程执行的结果,true表示执行成功,false表示执行失败.
    */
    public static boolean executeBSDProcedure(String procedureName) {
    boolean flag = false;
    String sqlStr = "{call " + procedureName + "()}";
    CallableStatement cs;
    Connection conn = makeConnection();
    try {
    cs = (CallableStatement) conn.prepareStatement(sqlStr);
    cs.executeUpdate(sqlStr);
    flag = true;
    } catch (SQLException e) {
    log.error("调用存储过程" + sqlStr + "失败!");
    e.printStackTrace();
    }
    return flag;
    }
    }

     /**
    * Created by IntelliJ IDEA.<br>
    * <b>User</b>: leizhimin<br>
    * <b>Date</b>: 2008-4-22 13:53:56<br>
    * <b>Note</b>: 基类DAO,提供了数据源注入
    */
    public class BaseDAO {
    private DataSource dataSource;

    public DataSource getDataSource() {
    return dataSource;
    }

    public void setDataSource(DataSource dataSource) {
    this.dataSource = dataSource;
    }

    public Connection getConnection() {
    Connection conn = null;
    try {
    conn = dataSource.getConnection();
    } catch (SQLException e) {
    e.printStackTrace();
    }
    return conn;
    }
    }

  • 相关阅读:
    简易高重用的jdbcutils工具封装实现类以及简易连接池实现
    http header 具体解释
    zoj 3888 Twelves Monkeys 二分+线段树维护次小值
    hyperLink的定制
    document.body.clientHeight的取值
    在循环中创建网页元素的问题
    mongo db 启动停止
    myeclipse 2014破解
    weblogic 集群部署时上传jsp不更新问题
    Spring classPath:用法
  • 原文地址:https://www.cnblogs.com/danghuijian/p/4400449.html
Copyright © 2020-2023  润新知