JDBC数据连接

DBCP是一个常用的数据库连接池,JDBC是数据库连接的一套API。

package com.ufgov.test;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class HelloWorld {
  
  static Connection conn = null;

  public static Connection getConnect() throws ClassNotFoundException, SQLException{
    String driver = "oracle.jdbc.driver.OracleDriver";
    String url="jdbc:oracle:thin:@127.0.0.1:1521:orcl";
    String name = "sa";
    String password="1";
    /*
     * 将oracle的驱动程序注册到 DriverManager中
     * 
     * 在通过Class.forName()显示加载oracle.jdbc.driver.OracleDriver的时候,
     * 会执行Driver的静态代码块,这个静态代码块就调用了DriverManager添加驱动的方法,
     * 将自己注册到了驱动管理器中
     */
    Class.forName(driver);
    conn = DriverManager.getConnection(url,name,password);
    return conn;
  }
  
  public static void main(String args[]){
    try {
      conn = getConnect();
      String sql = "Select ddbh from ra_donation_order_detail";
      PreparedStatement ps = conn.prepareStatement(sql);
      ResultSet st = ps.executeQuery();
      // Statement sqlStatement = conn.createStatement();
      // ResultSet result = sqlStatement.executeQuery(query);

      while(st.next()){
        System.out.print(st.getString("ddbh") + "\n");
      }
    } catch (ClassNotFoundException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    } catch (SQLException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
  }
}

spring中配置DataSource的方法:

	<bean id="csDataSource" class="org.apache.commons.dbcp.BasicDataSource"
		destroy-method="close">
		<property name="driverClassName">
			<value>oracle.jdbc.driver.OracleDriver</value>
		</property>
		<property name="url">
				<value>jdbc:oracle:thin:@127.0.0.1:1521:orcl</value>
		</property>
		<property name="username">
                              value>sa</value>
		</property>
		<property name="password">
			<value>1</value>
		</property>
	</bean>

JNDI 在 J2EE 中的角色就是“交换机” —— J2EE 组件在运行时间接地查找其他组件、资源或服务的通用机制。在多数情况下,提供 JNDI 供应者的容器可以充当有限的数据存储,这样管理员就可以设置应用程序的执行属性,并让其他应用程序引用这些属性(Java 管理扩展(Java Management Extensions,JMX)也可以用作这个目的)。JNDI 在 J2EE 应用程序中的主要角色就是提供间接层,这样组件就可以发现所需要的资源,而不用了解这些间接性。

	<bean id="dataSource" class="com.ufgov.gmap.springsupport.JndiObjectFactoryBean">
		<property name="jndiName">
			<value>java:comp/env/webglDS_A6</value>
		</property>
	</bean>

没有JNDI的做法存在的问题:
1、数据库服务器名称 、用户名和口令都可能需要改变,由此引发JDBC URL需要修改;
2、数据库可能改用别的产品,如改用DB2或者Oracle,引发JDBC驱动程序包和类名需要修改;
3、随着实际使用终端的增加,原配置的连接池参数可能需要调整;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值