业余程序员如何理解JAVABEAN数据库连接
问题一:如题
问题二:实例求解
////////////////////////////
数据库连接的的JAVABEAN,Query()和executeSq()是否多余?其他是否有不妥?
///////////////////////////
package dbcon;
import java.sql.*;
import java.io.*;
public class GetValue{
Connection conn = null;
ResultSet rs = null;
Statement stmt = null;
public GetValue(){
try{
if (rs!=null)
rs.close();
if (stmt!=null)
stmt.close();
if (conn!=null)
conn.close();
}catch(SQLException ex)
{
System.err.println( "DBCONN: " + ex.getMessage());
}
try{
Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver ");
}catch(java.lang.ClassNotFoundException e){
}
}
public ResultSet executeQuery(String sql){
rs = null;//这个rs是否和JSP中定义的rs一样
try{
if (rs!=null)
rs.close();
if (stmt!=null)
stmt.close();
if (conn!=null)
conn.close();
}catch(SQLException ex)
{
return rs;
}
try{
conn= DriverManager.getConnection( "jdbc:odbc:netschool ");
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
}catch(SQLException ex){
}
return rs;
}
public ResultSet Query(String sql){
rs = null;
try{
conn= DriverManager.getConnection( "jdbc:odbc:netschool ");
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
rs = stmt.executeQuery(sql);
}catch(SQLException ex){
}
return rs;
}
public boolean executeUpdate(String sql){
rs = null;
try{
conn= DriverManager.getConnection( "jdbc:odbc:netschool ");
stmt = conn.createStatement();
stmt.executeUpdate(sql);
return true;
}catch(SQLException ex){
return false;
}
}
public boolean executeSql(String sql){
try{
conn = DriverManager.getConnection( "jdbc:odbc:netschool ");
stmt = conn.createStatement();
stmt.execute(sql);
stmt.close();
conn.close();
return true;
}catch(SQLException ex){
return false;
}
}
public boolean closeConn()
{
try{
if (rs!=null)
rs.close();
if (stmt!=null)
stmt.close();
if (conn!=null)
conn.close();
return true;
}catch(SQLException ex)
{
return false;
}
}
}
//////////////////////////////////////////
求正确的JSP页面,注释后有问题
/////////////////////////////////////////////
<%@ page contentType= "text/html; charset=gb2312 " language= "java " import= "java.sql.* " errorPage= " " %>
<jsp:useBean id= "db " class= "dbcon.GetValue " scope= "page " />
<%
ResultSet rs;
ResultSet rs1;
rs=null;
rs1=null;//此2句时候需要?
sql= "insert into tablename(ID,name) values(1, 'HELLO ');
rs=db.executeUpdate(sql);
rs.close;//此步需要吗?为何需要?
rs=null;//此步需要吗?为何需要?
sql1= " select * from tablename ";
rs1=executeQuery(sql);
While(rs1.next())
{out.println(rs1.getInt( "ID "));}
rs1.close;//此步需要吗?为何需要?
rs1=null;//此步需要吗?为何需要?
db.closeConn();//结合java代码说明一下数据库连接是否关闭?
%>
[解决办法]
jsp最终是要解释成servlet的,
<%
ResultSet rs;
ResultSet rs1;
rs=null;
rs1=null;//此2句时候需要?这里声名的变量为本地变量,所以最好把后两句加上,致于
rs.close;//此步需要吗?为何需要?
rs=null;//此步需要吗?为何需要?这两句,因为有
db.closeConn();//结合java代码说明一下数据库连接是否关闭?这两句,所以个人觉得可以不要,但一旦写了rs.close;//此步需要吗?为何需要?这一句,那么rs=null;//此步需要吗?这句最好带上,否则db.closeConn();//结合java代码说明一下数据库连接是否关闭?这句会出问题会出问题
[解决办法]
你还是没把数据库和页面分离阿 那还用bean干什么
存在ArrayList Vector里 这边取
[解决办法]
ResultSet rs;
ResultSet rs1;
rs=null;
rs1=null;//此2句时候需要?
这个东西不需要吧…………
看来楼主还真是没有理解Bean的作用,也没弄清jdbc…………
JSP页面就是拿它来做显示和输入用的,最好不要在页面里去和数据库通信,所以要用bean,代码看着才舒服
建议楼主去看看书,初步了解一下jdbc
[解决办法]
去这里看看吧:
http://www.javadingle.com