早就听说学习J2EE有13个规范,简单看一下这十三个规范:每个规范为实现某个特定的功能提供了统一的接口即规范,例如servlet制定了服务器和应用程序之间的请求/响应规范,JNDI提供了访问不同的命名和目录服务的统一的接口规范…… 当然刚刚开始学习J2EE,更多了解看百科资料:JDBC
这次学习了J2EE的13规范之一JDBC,简单总结一下。
JDBC(Java DataBase Connectivity)Java数据库连接。为什么说是一种规范呢?因为JDBC就是由Sun公司制定的Java连接数据库的一套规范,一套接口。所有的数据库厂商都需要来实现这些接口,实现的类成为驱动。例如Oracle,Sql Server mySql等都需要去实现这套接口。所有的Java程序员都要面向JDBC接口的调用。因此说它是一套规范。
JDBC中主要用到了那些规范接口呢?
下边看一下最基本的JDBC几个步骤:
1,注册驱动,不同的数据库有不同的,这里以Oracle为例来简单写一下:
//1,注册驱动的的三种不同方式 //第一种 //Class.forName(driver); //第二种 //new oracle.jdbc.OracleDriver(); //第三种方式 DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
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的还是需要在不断的实践中完善,当然它也有很多知识需要学习,像数据连接池的使用等等。在以后的学习中会不断丰富的。学习中……加油!!!
原文:http://blog.csdn.net/liujiahan629629/article/details/18277051