家里写的程序拿到公司,跑出了这个错误。原因:SQL SERVER数据库的三个JAR文件没有搞定。。
引用内容
ERROR - Initializing application data source org.apache.struts.action.DATA_SOURCE
org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory ([Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]无法打开登录 'gdyy' 中请求的数据库。登录失败。)
at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:855)
at org.apache.commons.dbcp.BasicDataSource.setLogWriter(BasicDataSource.java:598)
at org.apache.struts.action.ActionServlet.initModuleDataSources(ActionServlet.java:778)
at org.apache.struts.action.ActionServlet.init(ActionServlet.java:331)
at javax.servlet.GenericServlet.init(GenericServlet.java:211)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1091)
org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory ([Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]无法打开登录 'gdyy' 中请求的数据库。登录失败。)
at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:855)
at org.apache.commons.dbcp.BasicDataSource.setLogWriter(BasicDataSource.java:598)
at org.apache.struts.action.ActionServlet.initModuleDataSources(ActionServlet.java:778)
at org.apache.struts.action.ActionServlet.init(ActionServlet.java:331)
at javax.servlet.GenericServlet.init(GenericServlet.java:211)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1091)
总结一下:
java.lang.IllegalArgumentException: Document base C:\Tomcat 5.5\webapps\应用名 does not exist or is not a readable directory
这样的错误应在是在tomcat的Tomcat 5.5\conf\Catalina\localhost目录下配置的针对该应用的连接池的xml文件,而在webapps中没有这个应用
解决办法:
……自己好了……真的不知道是怎么解决的。其间做了两件事:
1.把sql server三个驱动类拷贝到 jakarta-tomcat-5.5.9\\common\\lib下,也拷贝到apache-tomcat-5.5.9\\server\\lib下。(应该是这种方法)
java.lang.IllegalArgumentException: Document base C:\Tomcat 5.5\webapps\应用名 does not exist or is not a readable directory
这样的错误应在是在tomcat的Tomcat 5.5\conf\Catalina\localhost目录下配置的针对该应用的连接池的xml文件,而在webapps中没有这个应用
解决办法:
……自己好了……真的不知道是怎么解决的。其间做了两件事:
1.把sql server三个驱动类拷贝到 jakarta-tomcat-5.5.9\\common\\lib下,也拷贝到apache-tomcat-5.5.9\\server\\lib下。(应该是这种方法)
Tags: Exception
JavaBean中使用JDBC方式进行事务处理
在JDBC中怎样将多个SQL语句组合成一个事务呢?在JDBC中,打开一个连接对象Connection时,缺省是auto-commit模式,每个SQL语句都被当作一个事务,即每次执行一个语句,都会自动的得到事务确认。为了能将多个SQL语句组合成一个事务,要将auto-commit模式屏蔽掉。在auto-commit模式屏蔽掉之后,如果不调用commit()方法,SQL语句不会得到事务确认。在最近一次commit()方法调用之后的所有SQL会在方法commit()调用时得到确认。
在JDBC中怎样将多个SQL语句组合成一个事务呢?在JDBC中,打开一个连接对象Connection时,缺省是auto-commit模式,每个SQL语句都被当作一个事务,即每次执行一个语句,都会自动的得到事务确认。为了能将多个SQL语句组合成一个事务,要将auto-commit模式屏蔽掉。在auto-commit模式屏蔽掉之后,如果不调用commit()方法,SQL语句不会得到事务确认。在最近一次commit()方法调用之后的所有SQL会在方法commit()调用时得到确认。
复制内容到剪贴板 程序代码
public int delete(int sID) {
dbc = new DataBaseConnection();
Connection con = dbc.getConnection();
try {
con.setAutoCommit(false);// 更改JDBC事务的默认提交方式
dbc.executeUpdate("delete from bylaw where ID=" + sID);
dbc.executeUpdate("delete from bylaw _content where ID=" + sID);
dbc = new DataBaseConnection();
Connection con = dbc.getConnection();
try {
con.setAutoCommit(false);// 更改JDBC事务的默认提交方式
dbc.executeUpdate("delete from bylaw where ID=" + sID);
dbc.executeUpdate("delete from bylaw _content where ID=" + sID);
Tags: 事务