早就听说学习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