简洁实用的连接数据库类代码。
修改DBDriver和url后可以连接Oracle、SqlServer等常见数据库。
如:
DBDriver = "oracle.jdbc.driver.OracleDriver";
url = "jdbc:oracle:thin:@10.1.0.10:1521:oradb";
就可以连接Oracle数据库
考虑到,查询需要返回 ResultSet 记录集,使用后最好立即关闭 ResultSet和Statement。
查询未做成类内方法,在类外实现可能比较合适,这样就可以同时查询多个记录交叉使用。
也可使Statement和ResultSet作为DB类的私有属性,DB类则可提供查询方法,返回记录集。
但一个DB实例就只能查询一个记录集,造成某些使用的不便。
update方法提供更新、插入、删除的功能。
update方法不存在返回记录集的问题,则可以作为DB类的方法被调用。
Statement则在Finally块中保证执行后立即关闭,以免造成资源量费。
有问题或更好的方法实现邮件讨论petehero@126.com
import java.sql.*;
public class DB{
static private String DBDriver = "com.mysql.jdbc.Driver";
static private String url="jdbc:mysql://10.1.0.10:3306/test";
private Connection conn;
public DB(){
try {
Class.forName(DBDriver);
conn = DriverManager.getConnection(url,"username","password");
}
catch(Exception ex){
ex.printStackTrace();
}
}
public Connection getConn(){
return conn;
}
public void closeConn(){
try{
if (conn!=null){
conn.close();
}
}
catch(Exception ex) {
ex.printStackTrace();
}
}
public boolean update(String sql) {//ins,update,del
boolean b=false;
Statement stmt=null;
try{
stmt = conn.createStatement();
if(0 != stmt.executeUpdate(sql))
b=true;
}
catch(Exception ex) {
ex.printStackTrace();
}
finally{
try{
if(stmt!=null)
stmt.close();
}
catch (SQLException ex){
ex.printStackTrace();
}
}
return b;
}
public static void main(String args[]){
DB db=new DB();
ResultSet rs=null;
Statement stmt=null;
try{
stmt=db.getConn().createStatement();
rs=stmt.executeQuery("select * from market");
rs.next();
System.out.print(rs.getString(1));
rs.close();
stmt.close();
}
catch (SQLException ex){
ex.printStackTrace();
}
finally{
rs=null;
stmt=null;
db.closeConn();
}
}
}