实际的项目中可能会要做数据库的移植,不同 的数据库有不同的链接方式,我闲着没事,写了一个通用的数据库的链接方法....呵呵...
/**
* @author SMALL_LEO
* @VERSION 1.0
* @param db_flag为链接的数据库代码,1为oracle
* 2 为sybase 3为 db2 4为sqlerver 5为mysql
* driver 为数据库驱动
* ip:为服务器的ip
* dk:为数据库端口号
* userName:数据库用户名
* pwd:数据库密码
* dbname:数据库名
*@DATE:2011-01-22 12:12
*/
public static void connDB(int db_flag,String driverName ,String ip,String dk,String userName,String pwd ,String dbname ){
//匹配数据库的链接
String driverNames="";//驱动程序名
String urls="";//链接路径
switch(db_flag){
case 1:
driverNames = driverName;//数据库驱动名 dk:1521
urls = "jdbc:oracle:thin:@"+ip+":"+dk+":"+dbname;//链接数据库url
break;
case 2:
driverNames = driverName;//数据库驱动名 dk:5007
urls = "jdbc:sybase:Tds:"+ip+":"+dk+"/"+dbname;//链接数据库url
break;
case 3:
driverNames = driverName;//数据库驱动名 dk:5000
urls = "jdbc:db2://"+ip+":"+dk+"/"+dbname;//链接数据库url
break;
case 4:
driverNames = driverName;//数据库驱动名 dk:1433
urls = "jdbc:microsoft:sqlserver://"+ip+":"+dk+";DatabaseName="+dbname;//链接数据库url
break;
case 5:
driverNames = driverName;//数据库驱动名 dk:3306
urls = "jdbc:mysql://"+ip+":"+dk+"/"+dbname;//链接数据库url
break;
}
Connection conn=null;
try {
//创建链接
Class.forName(driverName).newInstance();
if(db_flag==4){
Properties pro = System.getProperties();
pro.put("user", userName);
pro.put("password", pwd);
conn = DriverManager.getConnection(urls,pro);
}else{
conn = DriverManager.getConnection(urls,userName,pwd);
}
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}finally{
//记得关闭链接哦
if(conn==null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
其实我们还可以对这个做一个修改,我们可以把这个写到数据库的一个properties的属性配置文件中,那样的话,我们的数据库链接就更加的灵活,并且也可以彻底的实现软件与数据库平台的无关性。献丑了...各位.