JAVAEE学习之二

<span style="white-space: pre;">	</span>这次写的是关于JAVAEE中前台页面JSP,后台JAVA代码与数据库中的连接。

我用的是oracle,所以就以oracle来作为数据库举例。首先,我们要确认数据库的服务等等是否启动完毕,确定没有错误。

在SE中我们后台与数据库的连接方式一般创建一个Dao.Util包,在这个包里面我们写的是JDBC连接数据库的方法。具体代码如下:

public class DaoUtil {
	
	//加载驱动
	try {
		Class.forName(oracle.jdbc.driver.OracleDriver);
	} catch (ClassNotFoundException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
		
	}
	//以JDBC方式
	//获取数据库连接
	public static Connection getConnection()
	{
		Connection conn = null;
		try {
			conn = DriverManager.getConnection("jdbc:oracle:thin:@192.168.5.100:1521:orcl","system","oracle");
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		return conn;
	}
	
	//一定要注意的是 我们每次打开数据库后都要关闭数据库,而closeAll()这个方法中之所以会传进下面的这三个参数,是因为我们会在Dao.Impl这个包中会用到,///我们打开后获取到数据之后要关闭他们。
i	public static void closeAll(Connection con , Statement stmt, ResultSet rs){
		try{
    		
    		if(rs!=null){
    			rs.close();
    		}
    		
    		if(stmt!=null){
    			stmt.close();
    		}
    		
    		if(con!=null){
    			con.close();
    		}
    	}catch(SQLException e){
    		e.printStackTrace();
    	}
		
	}
}
然而,在EE中这种方法是不方便的,我们每次获取连接,关闭,工作量一大,那样页面获取数据的反应是很慢的,所以在EE中我们引入了一个数据池,多线程获取,那样就有效的减少了数据用户的等待时间。

首先,我们要在lib里面引入一个名为c3p0-0.9.1.2.jar的jar包。引入C3P0的xml配置文件。在WEB-INF下的classes里面创建一个后缀名为.properties的文件,在这个文件里写入driver驱动器,url是什么,用户名是什么,密码多少,例如:

driver=oracle.jdbc.driver.OracleDriver
url=jdbc:oracle:thin:@192.168.6.200:1521:orcl
user=system
pwd=niit

以下代码是通过C3P0的方式连接数据库的:

package com.som.dao.util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ResourceBundle;

import com.mchange.v2.c3p0.ComboPooledDataSource;

/**
 * 数据库的打开和关闭
 * @author Administrator
 *
 */
public class DaoUtil {
	private static String driver;
	private static String url;
	private static String user;
	private static String pwd;
	
	//加载驱动
	static{
		//获取属性文件中的值
		ResourceBundle bundle = ResourceBundle.getBundle("dbConfig");
		//通过bundle对象获取属性文件中的value
		driver = bundle.getString("driver");
		url = bundle.getString("url");
		user = bundle.getString("user");
		pwd=bundle.getString("pwd");
		
		
		try {
			Class.forName(driver);
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
	//以JDBC方式
	//获取数据库连接
	public static Connection getConnection()
	{
		Connection conn = null;
		try {
			conn = DriverManager.getConnection(url,user,pwd);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		return conn;
	}
	
	//打开数据库连接,使用C3P0的方式,从数据库连接池中获取连接
	public static Connection openConnFromPool(){
		ComboPooledDataSource ds = new ComboPooledDataSource();
		//获取连接
		Connection con=null;
		//PreparedStatement ps = null;
		try {
			con = ds.getConnection();
			//
			System.out.println("连接成功!");
			
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		return con;
	}
	
	//关闭数据库
	public static void closeAll(Connection con , Statement stmt, ResultSet rs){
		try{
    		
    		if(rs!=null){
    			rs.close();
    		}
    		
    		if(stmt!=null){
    			stmt.close();
    		}
    		
    		if(con!=null){
    			con.close();
    		}
    	}catch(SQLException e){
    		e.printStackTrace();
    	}
		
	}
}



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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值