我操作数据库的类db如下:
public class db
{
private static Connection con; public static Connection getcon()
{
String CLASS_NAME = "com.mysql.jdbc.Driver";
String dburl = "jdbc:mysql://localhost:3306/testdb?useUnicode=true&characterEncoding=utf8";
String dbuser = "root"; // 管理员用户名
String dbpwd = "hhhhhh"; // 管理员密码,安装时设定的 try
{
Class.forName(CLASS_NAME);
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
con = DriverManager.getConnection(dburl, dbuser, dbpwd);
return con;
} catch (Exception e)
{
return null;
}
}
}该类的静态函数getcon()返回一个静态的con,我调用getcon()函数的代码如下:
ResultSet rst = null;
PreparedStatement prestmt = null;
Connection con = db.getcon();
try{
prestmt = con.prepareStatement(sql);
rst = prestmt.executeQuery();
//......(这里还有操作rst的代码,省略)}
catch(Exception e)
{
}
finally
{
prestmt.close();
rst.close();
con.close();
}在使用上述db类和调用代码后,存在如下问题不好解决,请高手们指点:
1) 在调用db的时候,我使用了Connection con = db.getcon();和con.close();, 在这部分代码结束后,db类中的静态private static Connection con;被关闭了吗?
2) 客户端会有两种类型的访问数据库的方式:一是,循环重复性不停的访问数据库,比如说,每1秒钟访问一次数据库,二是,偶尔较少的访问数据库。在这里就出现了一个问题:循环重复性不停的访问数据库的时候,是不是没有必要将数据库连接也重复的建立和断开,而是建立长久的链接供使用?而,偶尔较少访问数据库的链接的处理方式则应该使用完毕后立即断开?我刚开始学java,是菜鸟,我的这个想法不知道是否正确,请高手们不吝赐教?
3) 如果我在2)中的想法是正确的,那么,应该如何比较科学、合理的编写db类?高手们有没有相关的函数或者是类给我参考一下?感激不尽!