首页 > 数据库技术 > 详细

J2EE——JDBC

时间:2014-01-21 09:20:21      阅读:415      评论:0      收藏:0      [点我收藏+]

         早就听说学习J2EE13个规范,简单看一下这十三个规范:每个规范为实现某个特定的功能提供了统一的接口即规范,例如servlet制定了服务器和应用程序之间的请求/响应规范,JNDI提供了访问不同的命名和目录服务的统一的接口规范……  当然刚刚开始学习J2EE,更多了解看百科资料:JDBC


           这次学习了J2EE13规范之一JDBC,简单总结一下。


           JDBC(Java DataBase  Connectivity)Java数据库连接。为什么说是一种规范呢?因为JDBC就是由Sun公司制定的Java连接数据库的一套规范,一套接口。所有的数据库厂商都需要来实现这些接口,实现的类成为驱动。例如Oracle,Sql Server mySql等都需要去实现这套接口。所有的Java程序员都要面向JDBC接口的调用。因此说它是一套规范。


          JDBC中主要用到了那些规范接口呢?


bubuko.com,布布扣


        下边看一下最基本的JDBC几个步骤:


         1,注册驱动,不同的数据库有不同的,这里以Oracle为例来简单写一下:

			//1,注册驱动的的三种不同方式
			//第一种
			//Class.forName(driver);
			//第二种
			//new oracle.jdbc.OracleDriver();
			//第三种方式
			DriverManager.registerDriver(new oracle.jdbc.OracleDriver());

        2,获取连接,根据地址,用户名和密码来获取数据库连接,

			conn=DriverManager.getConnection(url,user,password);

        3,获取数据库操作对象:

			stat =conn.createStatement();

         4,执行SQL语句,不同的有不同的方法,例如查询用executeQuery,增删改用executeUpdate,当然还有很多,需要根据实际清空,进行选择。


         5,分析处理结果,对查询出来的数据,或者执行的结果,进行处理判断。


         6,关闭数据库,释放资源,需要反向,从小到大依次释放:

		finally{
			if(rs!=null){
				try{rs.close();}catch(SQLException e){}
			}
			if(stmt!=null){
				try{stmt.close();}catch(SQLException e){}
			}
			if(conn!=null){
				try{conn.close();}catch(SQLException e){}
			}
		}

          这样从建立数据库连接,到操作数据,关闭数据库连接,就算结束了!其实和.NET连接数据库是特别像的。只不过这里更加有章可循,跨平台性更好而已。


          当然JDBC也可以根据面向对象,将一些公共的部分抽取出来,利用反射机制,使之更加灵活。看一个初步学习将获取连接和释放资源独立了出来的简单模块,有了这个模块我们就可以像.NET那样使用SQLHelper一样,直接获取连接,关闭连接,方便了很多,大大提高了复用性,当然这也不够完善,还需要后期不断的完善。


import java.io.*;
import java.sql.*;
import java.util.*;

public class JdbcHelper {
	//设置连接需要用的变量,设为static类型的
	private static String user, password, driver, url;

	static {
		//设置输入流来读取配置文件db.properties(当然这里我们用的更多的是web.xml文件)
		InputStream in = JdbcHelper.class.getClassLoader().getResourceAsStream(
				"db.properties");
		//定义属性文件pro
		Properties pro = new Properties();
		try {
			//将输入流读出数据加载到属性文件中
			pro.load(in);
			//获取配置文件中的变量,这样我们就可以更加灵活的换数据库了
			user = pro.getProperty("user");
			password = pro.getProperty("password");
			driver = pro.getProperty("driver");
			url = pro.getProperty("url");
			
		} catch (IOException e) {
			e.printStackTrace();
			
		} finally {
			try {
				if (in != null) {
					in.close();
				}
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
	
	//无参构造方法
	private JdbcHelper() {
	}
	
	//获取数据库连接
	public static Connection getConnection() throws ClassNotFoundException,
			SQLException {
		//注册驱动
		Class.forName(driver);
		//获取连接
		return DriverManager.getConnection(url, user, password);
	}

	//关闭连接,释放资源
	public static void closeDb(Connection conn, Statement stat, ResultSet res) {
		try {
			if (res != null) {
				res.close();
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}

		try {
			if (stat != null) {
				stat.close();
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}

		try {
			if (conn != null) {
				conn.close();
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
}

           JDBC的还是需要在不断的实践中完善,当然它也有很多知识需要学习,像数据连接池的使用等等。在以后的学习中会不断丰富的。学习中……加油!!!


J2EE——JDBC

原文:http://blog.csdn.net/liujiahan629629/article/details/18277051

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!