首先说明下:根据sun的声明,JDBC是一个注册了商标的术语,而并非Java Database Connectivity的首字母缩写。对它的命名体现了对ODBC的致敬,ODBC是微软开创的标准数据库API,并因此而并入了SQL标准中!
基于属性文件连接数据库,好处是便于修改和维护管理
首先建立属性文件,命名为dbconfig.properties(注意后缀一定要一样的!)
如图:
文件内容:
切换到Source下编辑(个人认为比较方便);
内容:
driverClass=oracle.jdbc.driver.OracleDriver
url=jdbc:oracle:thin:@localhost:1521:myoracle
loginId=scott
loginPass=tiger
driverClass:自定义驱动名
url:连接数据库的URL
(相信大家都知道这些是什么意思!)
建立一个类读取属性文件中的内容:
public class DBconfigReader {
/**
* 读取属性文件
*/
public static Properties getDBinfo(){
Properties pt = new Properties();
try {
pt.load(new FileInputStream("dbconfig.properties"));
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return pt;
}
}
建立一个类连接数据库并提供释放资源的方法:
public class DButilsdemo {
/**链接数据库
* @param args
*/
public static Connection getDBConn(){
Properties pt= DBconfigReader.getDBinfo();
String driverClassName =pt.getProperty("driverClass");
String url = pt.getProperty("url");
String loginName = pt.getProperty("loginId");
String loginPass = pt.getProperty("loginPass");
//链接数据库
Connection conn= null;
try {
Class.forName(driverClassName);
conn = DriverManager.getConnection(url,loginName,loginPass);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
/**
* 释放数据库资源
*/
public static void releaseDBresource(Connection conn,Statement stm,ResultSet rs){
try {
if(rs!=null){
rs.close();
}
if(stm!=null){
stm.close();
}
if(conn!=null){
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
用法示例:
public static void selectEmp(){
Connection conn= null;
Statement sta=null;
ResultSet rs= null;
//获得数据库链接
try {
conn=DButilsdemo.getDBConn();
sta = conn.createStatement();
String sql = "select * from emp";
rs = sta.executeQuery(sql);
while(rs.next()){
String id = rs.getString("empno");
String name = rs.getString("ename");
String job = rs.getString("JOB");
System.out.println(id+"\t"+name+"\t"+job);
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
DButilsdemo.releaseDBresource(conn, sta, null);
}
}