数据库连接与数据源配置

//在源程序中直接硬编码连接的参数信息
//代码片段

Connection conn;
String dirver = “oracle.jdbc.driver.OracleDriver”;
String url = “jdbc:oracle:thin:@127.0.0.1:1521:aptech”;
String userName = “scott”;
String password = “tiger”;
try {
      Class.forName(dirver);
      conn = DriverManager.getConnection(url,userName, password);
} catch (ClassNotFoundException e) {//找不到驱动程序类} 
  catch (SQLException e) {//数据库连接失败} 
  finally{
      try {
          if (con != null)  con.close();
      } catch (SQLException e) {e.printStackTrace();}
 } 
  String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; // 加载JDBC驱动
  String dbURL = "jdbc:sqlserver://localhost:1433; DatabaseName=shopping"; // 连接服务器和数据库sample
  String userName = "sa"; // 默认用户名
  String userPwd = ""; // 密码
  try {
   Class.forName(driverName);
   dbConn = DriverManager.getConnection(dbURL, userName, userPwd);
   con = true;
   // System.out.println("Connection Successful!"); //如果连接成功
   // 控制台输出Connection Successful!
  } catch (Exception e) {
   e.printStackTrace();
  }
  return con;
 }  

 

//通过属性文件加载数据库连接的参数信息
//代码片段
Properties props = new Properties();
props.load(
       new FileInputStream("src/com/jdbc/connection/database.properties")  );
String drivers = props.getProperty("jdbc.drivers");
String url = props.getProperty("jdbc.url");
String username = props.getProperty("jdbc.username");
String password = props.getProperty("jdbc.password");
Class.forName(drivers);
con = DriverManager.getConnection(url, username, password);
//属性文件
jdbc.drivers=oracle.jdbc.driver.OracleDriver
jdbc.url=jdbc:oracle:thin:@127.0.0.1:1521:aptech
jdbc.username=scott
jdbc.password=tiger

 

Tomcat自带的数据库连接池管理  从数据源获得连接

 在tomcat中通过JNDI服务获得DataSource引用,通过DataSource获得数据库连接
 1.配置数据源JNDI服务
 2.在应用中通过JNDI使用javax.naming.Context的lookup方法来检索DataSource引用
 3. DataSource的getConnection方法获得连接

第一种 方法

/*    Tomcat自带的数据库连接池管理工具
DBCP 使用 Jakarta-Commons Database Connection Pool. 它依赖于以下Jakarta-Commons 组件: 
Jakarta-Commons DBCP 
Jakarta-Commons Collections 
Jakarta-Commons Pool 
以上程序库被包含在$CATALINA_HOME/lib/tomcat-dbcp.jar 一个单独的jar包中。也可以分别到apache组织的网站上下载3个独

立的jar包
*/
BasicDataSource ds = new BasicDataSource();
        ds.setDriverClassName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
        ds.setUsername("sa");
        ds.setPassword("shenlin");
        ds.setUrl(“jdbc:sqlserver://127.0.0.1:1433;DatabaseName=CRM”);
        ds.getConnection();


第一种 方法

/*
在tomcat中配置数据源JNDI服务
在TOMCAT_HOME\conf\context.xml中添加Resource元素
将JDBC驱动程序(如class12.jar)添加到TOMCAT_HOME\lib目录中
如果tomcat已经启动需要重新启动才能生效
*/
<Resource name="jdbc/scott" 
                  auth="Container"
	     type="javax.sql.DataSource"  
	     maxActive="100"  
                  maxIdle="30" 
	     maxWait="10000"   
	     username="scott"   
                  password="tiger"
	     driverClassName="oracle.jdbc.driver.OracleDriver"
	     url="jdbc:oracle:thin:@localhost:1521:ntcsoft" />

 

 

在应用中通过JNDI使用javax.naming.Context的lookup方法来检索DataSource引用,由DataSource获得数据库连接

 

Context context = new InitialContext();
     DataSource ds =  (DataSource)context.lookup("java:comp/env/jdbc/scott");
     Connection conn = ds.getConnection();
/*
必须一致
<Resource name="jdbc/scott"  ……..  />
*/

 C3p0数据库连接池

import com.mchange.v2.c3p0.*; 

ComboPooledDataSource cpds = new ComboPooledDataSource(); 
cpds.setDriverClass( "org.postgresql.Driver" ); //loads the jdbc driver 
cpds.setJdbcUrl( "jdbc:postgresql://localhost/testdb" ); 
cpds.setUser("dbuser"); 
cpds.setPassword("dbpassword"); 
/*

如果你想打开PreparedStatement 池, 你必须 设置 maxStatements 和/或 maxStatementsPerConnection (both default to 0): 

*/
cpds.setMaxStatements( 180 ); 
//销毁数据源

DataSources.destroy( cpds ); 

 

/*
在tomcat中配置c3p0数据源JNDI服务
在TOMCAT_HOME\conf\context.xml中添加Resource元素
将JDBC驱动程序(如class12.jar)和c3p0的jar包添加到TOMCAT_HOME\lib目录中
如果tomcat已经启动需要重新启动才能生效
*/
<Resource    
    name="jdbc/exam"    
    auth="Container"    
    factory="org.apache.naming.factory.BeanFactory"    
    type="com.mchange.v2.c3p0.ComboPooledDataSource"    
    description="DB Connection"    
    driverClass="com.microsoft.sqlserver.jdbc.SQLServerDriver"    
    maxPoolSize="4"    
    minPoolSize="2"    
    acquireIncrement="1"
    user="sa"
    password=""
    jdbcUrl="jdbc:sqlserver://localhost:1433;DatabaseName=exam"
    /> 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值