本页主题: Java(JSP/Servlet/Bean)连MySQL数据库的函数 打印 | 加为IE收藏 | 复制链接 | 收藏主题 | 上一主题 | 下一主题

Mike
群熵工程师
级别: 管理员


精华: 7
发帖: 951
威望: 714 点
金钱: 6601 RMB
贡献值: 0 点
好评度: 611 点
在线时间:1405(小时)
注册时间:2003-11-28
最后登录:2018-11-04

 Java(JSP/Servlet/Bean)连MySQL数据库的函数

//--------------------- Database Operation Function ---------------------------------
private String dbName, dbUser, dbPassword; //在调用connectDatabase()前请设置好这几个数据
Connection dbConn=null;
// Connect to MySQL database
private Statement connectDatabase() throws Exception
{
if (dbConn == null)
{
Class.forName("com.mysql.jdbc.Driver").newInstance();
dbConn = DriverManager.getConnection("jdbc:mysql://localhost/"+dbName, dbUser, dbPassword); //如果数据库主机不是localhost,请另行替换
}
Statement dbStmt = dbConn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
return dbStmt;
}
private void closeDatabase(ResultSet rs) throws Exception
{
Statement dbStmt = rs.getStatement();
dbStmt.close();
//dbConn.close();
rs.close();
}
private ResultSet queryDatabase(String strQuery, Statement dbStmt) throws SQLException { return dbStmt.executeQuery(strQuery); }
private int updateDatabase(String strUpdate, Statement dbStmt) throws SQLException { return dbStmt.executeUpdate(strUpdate); }

在你的类中包含这几个函数就可以操作MySQL数据库了。
之所以在queryDatabase()和updateDatabase()函数中需要参数Statement dbStmt,是因为一个Statement只能返回一个ResultSet。同一个Statement第二次返回ResultSet会冲掉上一次的ResultSet结果。如果你需要同时使用两个ResultSet,必须在第二次提交SQL查询前调用一次connectDatabase(),生成一个新的Statement,用这个新的Statement进行第二次查询,这样做不会影响上次SQL查询的结果。

不只是在需要同时使用两个ResultSet的情况下,一般的,在一个异步系统(多线程系统)中,必须每个查询都使用独立的Statement,否则结果是难以预料的。
顶端 Posted: 04-08-08 18:41 | [楼 主]
帖子浏览记录 版块浏览记录
群熵信息 - 技术讨论区 » 面向WEB的Java技术

Total 0.011378(s) query 4, Time now is:12-16 12:07, Gzip enabled
Powered by PHPWind v6.3.2 Certificate Code © 2003-08 PHPWind.com Corporation

上海服务器租用 杭州世导双线服务器托管 云主机 VPS