com.datang.exception.ApplicationException是什么原因呢?烦请高手指导指导。一下是出错的代码:
package com.datang.dao.impl;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import com.datang.dao.EmployeeDAO;
import com.datang.exception.ApplicationException;
import com.datang.po.Employee;
import com.datang.po.EmployeeList;
import com.datang.util.DBUtil;
public class EmployeeMySQLDAOImpl implements EmployeeDAO{
public static final String GET_EMPLOYEE_BY_ID="select id,name,sex,hire_date,position,birthday,degree,major,experience
from t_employee";
public EmployeeList getEmployeeById(String id)throws ApplicationException{
Connection conn=null;
PreparedStatement pstmt=null;
ResultSet rs=null;
EmployeeList emp=new EmployeeList();
try{
conn=DBUtil.getConnection(); <-----从这一句就直接跳转的finally里边了。。
pstmt=conn.prepareStatement(GET_EMPLOYEE_BY_ID);
pstmt.setString(1, id);
rs=pstmt.executeQuery();
while(rs.next()){
emp.setId(rs.getString(1));
emp.setName(rs.getString(2));
emp.setSex(rs.getString(3).equals("0")?"男":"女");
emp.setHire_date(rs.getDate(4));
emp.setPosition(rs.getString(5));
emp.setBirthday(rs.getDate(6));
emp.setDegree(rs.getString(7));
emp.setMajor(rs.getString(8));
emp.setExperience(rs.getString(9));
}
return emp;
}catch(SQLException e){
e.printStackTrace();
return null;
}finally{
DBUtil.close(rs, pstmt, conn);
}
}
public static void main(String[] args){
try {
EmployeeList name=new EmployeeMySQLDAOImpl().getEmployeeById("1");
System.out.println(name);
} catch (ApplicationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
抛出的异常是:2008-10-24 09:42:45:INFO main com.datang.util.DBUtil - 数据库发生异常Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
com.datang.exception.ApplicationException
at com.datang.util.DBUtil.getConnection(DBUtil.java:32)
at com.datang.dao.impl.EmployeeMySQLDAOImpl.getEmployeeById(EmployeeMySQLDAOImpl.java:166)
at com.datang.dao.impl.EmployeeMySQLDAOImpl.main(EmployeeMySQLDAOImpl.java:193)
经检查DBUtil.java ApplicationException.java 都没错,谢谢了!!
15 个解决方案
#1
帮顶一下!
#2
java.naming.factory.initial
那一句跳了,你就再跟进去呗,应该是Class.forName那里出错了,检查一下。
那一句跳了,你就再跟进去呗,应该是Class.forName那里出错了,检查一下。
#3
pstmt.setString(1, id);
这一条语句应该拿掉吧。
这一条语句应该拿掉吧。
#4
连接池 see
#5
连接池,怎么连接不上呢,之前好好的
#6
楼主 我也有这样的问题 你解决了吗? 告诉我怎么解决···谢谢·
#7
http://tech.ddvip.com/2009-06/1244864563123563.html
必须用jsp进行连接测试,
必须用jsp进行连接测试,
#8
你应该把你的DBUtil类给别人看
拿这个有什么用呢,错不在这
拿这个有什么用呢,错不在这
#9
在类里面和jsp里面不同!他们不再同一个线程里!想用的话在jsp页面吧类引进去,在jsp页面调用!
#10
大虾。。。能不能解释一下关于在类里面和jsp里面不在同一个线程的详细实现。我是菜鸟,我觉得终究都是要执行这个java类,有什么区别呢?为啥就不能直接测试一下?拜托详细点。。。thanks!!!
#11
如果你用的是tomcat服务器那么在lookup的时候要加入java:comp/env/
DataSource datasource=(DataSource)context.lookup("java:comp/env/jdbc/ConnectionTest");
DataSource datasource=(DataSource)context.lookup("java:comp/env/jdbc/ConnectionTest");
#12
DataSource datasource=(DataSource)context.lookup("java:comp/env/jdbc/ConnectionTest");
加啦 还是一样
加啦 还是一样
#13
帮顶,我也是遇到同样的问题!!!
#14
晕哦,找到答案了,你是 用了数据库连接池吧,做测试的话你只能在web上面做测试,因为连接池是部署到tomcat服务器上,不能用application做测试的
#15
同解。没有服务器的参与,肯定run不起来的。
#1
帮顶一下!
#2
java.naming.factory.initial
那一句跳了,你就再跟进去呗,应该是Class.forName那里出错了,检查一下。
那一句跳了,你就再跟进去呗,应该是Class.forName那里出错了,检查一下。
#3
pstmt.setString(1, id);
这一条语句应该拿掉吧。
这一条语句应该拿掉吧。
#4
连接池 see
#5
连接池,怎么连接不上呢,之前好好的
#6
楼主 我也有这样的问题 你解决了吗? 告诉我怎么解决···谢谢·
#7
http://tech.ddvip.com/2009-06/1244864563123563.html
必须用jsp进行连接测试,
必须用jsp进行连接测试,
#8
你应该把你的DBUtil类给别人看
拿这个有什么用呢,错不在这
拿这个有什么用呢,错不在这
#9
在类里面和jsp里面不同!他们不再同一个线程里!想用的话在jsp页面吧类引进去,在jsp页面调用!
#10
大虾。。。能不能解释一下关于在类里面和jsp里面不在同一个线程的详细实现。我是菜鸟,我觉得终究都是要执行这个java类,有什么区别呢?为啥就不能直接测试一下?拜托详细点。。。thanks!!!
#11
如果你用的是tomcat服务器那么在lookup的时候要加入java:comp/env/
DataSource datasource=(DataSource)context.lookup("java:comp/env/jdbc/ConnectionTest");
DataSource datasource=(DataSource)context.lookup("java:comp/env/jdbc/ConnectionTest");
#12
DataSource datasource=(DataSource)context.lookup("java:comp/env/jdbc/ConnectionTest");
加啦 还是一样
加啦 还是一样
#13
帮顶,我也是遇到同样的问题!!!
#14
晕哦,找到答案了,你是 用了数据库连接池吧,做测试的话你只能在web上面做测试,因为连接池是部署到tomcat服务器上,不能用application做测试的
#15
同解。没有服务器的参与,肯定run不起来的。