数据源的JAVABEAN如下:
package mybean;
import java.sql.*;
import javax.sql.*;
import javax.naming.*;
public class DBConnSource {
private Connection conn;
private Statement stmt;
private PreparedStatement pstmt;
public DBConnSource(String dsName){
try{
Context initCtx = new InitialContext();
Context ctx =(Context)initCtx.lookup("java:comp/env");
DataSource ds =(DataSource)ctx.lookup(dsName);
conn = ds.getConnection();
}
catch(Exception e)
{
System.out.print(e.toString());
}
}
public synchronized Statement getStmt()throws Exception
{
stmt=conn.createStatement();
return stmt;
}
public synchronized PreparedStatement getPstmt(String sql)throws Exception
{
pstmt=conn.prepareStatement(sql);
return pstmt;
}
}
我想问问我怎么在另一个JAVABEAN中使用它?我试过这样:
DBConnSource dbc=new DBConnSource;
Statement stmt=dbc.getStmt();
sql="..............";
ResultSet rs=stmt.executeQuery(sql);
可是不管我这个SQL怎么写.都是空指针错误.NULLPOINTEREXECEPTION.
想请教各位高人.我怎么在一个JAVABEAN中使用一个已经定义好的数据源的BEAN.
谢谢!
package mybean;
import java.sql.*;
import javax.sql.*;
import javax.naming.*;
public class DBConnSource {
private Connection conn;
private Statement stmt;
private PreparedStatement pstmt;
public DBConnSource(String dsName){
try{
Context initCtx = new InitialContext();
Context ctx =(Context)initCtx.lookup("java:comp/env");
DataSource ds =(DataSource)ctx.lookup(dsName);
conn = ds.getConnection();
}
catch(Exception e)
{
System.out.print(e.toString());
}
}
public synchronized Statement getStmt()throws Exception
{
stmt=conn.createStatement();
return stmt;
}
public synchronized PreparedStatement getPstmt(String sql)throws Exception
{
pstmt=conn.prepareStatement(sql);
return pstmt;
}
}
我想问问我怎么在另一个JAVABEAN中使用它?我试过这样:
DBConnSource dbc=new DBConnSource;
Statement stmt=dbc.getStmt();
sql="..............";
ResultSet rs=stmt.executeQuery(sql);
可是不管我这个SQL怎么写.都是空指针错误.NULLPOINTEREXECEPTION.
想请教各位高人.我怎么在一个JAVABEAN中使用一个已经定义好的数据源的BEAN.
谢谢!
DataSource ds =(DataSource)ctx.lookup(dsName);
conn = ds.getConnection();
}
这不是写过了吗?
应该是DBConnSource dbc=new DBConnSource(这里是jndi的名字);
我把"Statement stmt=dbc.getStmt();"改成"stmt=dbc.getStmt();"页面就正常运行了.
还要请教各位专家,在JAVABEAN中使用到的变量,是不是必须都是事先定义.象我一开始所犯的错误,是不是属于重复定义.谢谢指点.