获取数据库连接出错了

newleague 2008-04-15 02:55:40
package org.mmxbb.exam.dao;


import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Collection;

import org.mmxbb.exam.bean.Examinee;
import org.mmxbb.exam.business.LogonForm;
import org.mmxbb.exam.business.examinee.ExamineeActionForm;
import org.mmxbb.exam.business.program.RandomDistributeExamPaperForm;
import org.mmxbb.exam.util.DBConn;


public class ExamineeDAO {
DBConn dbconn = null;
private Connection conn = null;

private int rowCount;
private int pageCount;
private int length;
private String pagestr;
private String conditionStr = "";


private static final String IS_USER =
"SELECT password FROM EX_EXAMINEE WHERE examinee_id = ?";
private static final String FIND_BY_KEY =
"SELECT * FROM EX_EXAMINEE WHERE examinee_id = ?";
/**
* get a connection from a DB pool
* @return Connection
*/
public ExamineeDAO() {
try {
dbconn = new DBConn();
System.out.println("---------ExamineeDAO() -----------------------------------");
conn = dbconn.getConnection();
System.out.println("---------ExamineeDAO() ----已获得数据库的连接了-------------------------------");
} catch (Exception ex) {
ex.printStackTrace();
}
}

public boolean isUser(LogonForm logonForm) {
PreparedStatement pstmt = null;
ResultSet rs = null;
boolean isUser = false;

try {
System.out.println("-----ExamineeDAO.java---isUser()--------------"+conn);
pstmt = conn.prepareStatement(IS_USER);
pstmt.setString(1, logonForm.getUserName());
rs = pstmt.executeQuery();
if (rs.next()) {
if (rs.getString(1).equals(logonForm.getPassword())) {
isUser = true;
}
}
} catch (SQLException ex) {
ex.printStackTrace();
} finally {
try {
rs.close();
rs = null;
pstmt.close();
pstmt = null;
conn.close();
conn = null;
} catch (SQLException ex1) {
ex1.printStackTrace();
}
}
return isUser;
}
}



tomcat 控制台出现以下信息:

2008-4-15 14:36:03 org.apache.catalina.core.ApplicationContext log
信息: HTMLManager: list: Listing contexts for virtual host 'localhost'
---------ExamineeDAO() -----------------------------------
---------ExamineeDAO() ----已获得数据库的连接了-------------------------------
-----ExamineeDAO.java---isUser()--------------null


请问为什么我得不到connection?得到却是null
...全文
147 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
newleague 2008-04-18
  • 打赏
  • 举报
回复
问题已找到,谢谢大家.DBConn() 里有错误.
loaferwang 2008-04-16
  • 打赏
  • 举报
回复
如果数据连接的代码有误,要查看是不是你所用的桥架不对呀,那就是IDE的DB conn 工具啦,myeclipse 用DB browser啦,jbuilder 也有可视化连接验证的界面啦,
newleague 2008-04-15
  • 打赏
  • 举报
回复
先谢谢你啊!

我更正一下我的问题:

package org.mmxbb.exam.util;
import java.sql.Connection;
import java.sql.DriverManager;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;

public class DBConn {
DataSource ds = null;
Connection conn = null;

public DBConn() {
}

/**
* <li>get the connection from lookup DataSource
* @return Connection
*/
public Connection getConnection() {
try {
// Context initCtx = new InitialContext();
// Context envCtx = (Context)initCtx.lookup("java:comp/env");
// ds = (DataSource)envCtx.lookup("jdbc/exam");
// conn=ds.getConnection();

Connection conn = null;
Class.forName("com.mysql.jdbc.Driver");
conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/exam","root","123");
} catch (Exception e) {
System.err.println("getConnection error: " + e);
return null;
}
return conn;
}
/**
* return connection to pool
*/
public void close() {
try {
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}






package org.mmxbb.exam.dao;


import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Collection;

import org.mmxbb.exam.bean.Examinee;
import org.mmxbb.exam.business.LogonForm;
import org.mmxbb.exam.business.examinee.ExamineeActionForm;
import org.mmxbb.exam.business.program.RandomDistributeExamPaperForm;
import org.mmxbb.exam.util.DBConn;


public class ExamineeDAO {
DBConn dbconn = null;
private Connection conn = null;

private int rowCount;
private int pageCount;
private int length;
private String pagestr;
private String conditionStr = "";


private static final String IS_USER =
"SELECT password FROM EX_EXAMINEE WHERE examinee_id = ?";
private static final String FIND_BY_KEY =
"SELECT * FROM EX_EXAMINEE WHERE examinee_id = ?";
/**
* get a connection from a DB pool
* @return Connection
*/
public ExamineeDAO() {
try {
dbconn = new DBConn();
System.out.println("---------ExamineeDAO() -----------------------------------");
conn = dbconn.getConnection();
System.out.println("---------ExamineeDAO() ----已获得数据库的连接了--------------------"+conn);
} catch (Exception ex) {
ex.printStackTrace();
}
}

public boolean isUser(LogonForm logonForm) {
PreparedStatement pstmt = null;
ResultSet rs = null;
boolean isUser = false;

try {
System.out.println("-----ExamineeDAO.java---isUser()--------------"+conn);
pstmt = conn.prepareStatement(IS_USER);
pstmt.setString(1, logonForm.getUserName());
rs = pstmt.executeQuery();
if (rs.next()) {
if (rs.getString(1).equals(logonForm.getPassword())) {
isUser = true;
}
}
} catch (SQLException ex) {
ex.printStackTrace();
} finally {
try {
rs.close();
rs = null;
pstmt.close();
pstmt = null;
conn.close();
conn = null;
} catch (SQLException ex1) {
ex1.printStackTrace();
}
}
return isUser;
}
}


tomcat 控制台出现以下信息:

信息: Initializing, config='org.apache.struts.taglib.html.LocalStrings', returnNull=true
---------ExamineeDAO() -----------------------------------
---------ExamineeDAO() ----已获得数据库的连接了-------------------------------null-----ExamineeDAO.java---isUser()--------------null


请问为什么我得不到connection?得到却是null

老紫竹 2008-04-15
  • 打赏
  • 举报
回复
conn = dbconn.getConnection();

那就去你的DbCon 类啊!为什么他没有返回Connection 而是 null

newleague 2008-04-15
  • 打赏
  • 举报
回复
代码有删减,只留下了主要的

67,538

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧