请大家帮帮我,我写了数据库操作的代码.import java.sql.*;
import java.util.*;import javax.sql.*;
import javax.naming.*;
public class DataSources { private InitialContext ctx; private DataSource ds; private Connection conn; private Statement stmt; private HashMap map = new HashMap(); public Boolean DBConnet() {
try {
ctx = new InitialContext();
ds = (DataSource) ctx.lookup("java:comp/env/jdbc/mysql");
// ds = (DataSource) ctx.lookup("java:/ConnectDB");
conn = ds.getConnection();
// stmt = conn.createStatement();
} catch (Exception ex) {
System.err.print(ex);
return false;
}
return true;
}
@SuppressWarnings( { "unused", "unchecked" })
public List getResultList(String sql) {
try {
stmt = conn.createStatement();
java.sql.ResultSet rs = stmt.executeQuery(sql); List coulumn = null;
List row = new ArrayList();
while (rs.next()) {
coulumn = new ArrayList();
for (int i = 1; i <= rs.getMetaData().getColumnCount(); i++) {
coulumn.add(rs.getString(i));
}
row.add(coulumn);
}
rs.close();
return row; } catch (SQLException e) {
System.err.print(e);
return null;
}
}
@SuppressWarnings( { "unused", "unchecked" })
public List getOneRowResult(String sql) {
try {
stmt = conn.createStatement();
java.sql.ResultSet rs = stmt.executeQuery(sql);
List list = null;
list = new ArrayList();
while (rs.next()) {
for (int i = 1; i <= rs.getMetaData().getColumnCount(); i++) {
list.add(rs.getString(i));
}
}
rs.close();
return list; } catch (SQLException e) {
System.err.print(e);
return null;
}
}
public Boolean executeSQL(String sql) {
try {
stmt = conn.createStatement();
stmt.executeUpdate(sql);
} catch (SQLException e) {
System.err.print(e);
return false;
}
return true;
}
}
下面是业务操作的,继承他.
public Boolean deleteCompany(int company_id){
Boolean i;
String sql="delete from book where company_id="+company_id;
i=this.executeSQL(sql);
ds.onClose();
return true;
}运行之后报错,空指针
java.lang.NullPointerException
at org.tdrms.datamanage.DataSources.executeSQL(DataSources.java:227)
at org.tdrms.bean.db.CompanyOPBean.deleteCompany(CompanyOPBean.java:16)
at org.tdrms.report.struts.action.DeletecompanyAction.execute(DeletecompanyAction.java:29)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.ecside.filter.ECSideFilter.doFilter(ECSideFilter.java:188)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Unknown Source)
import java.util.*;import javax.sql.*;
import javax.naming.*;
public class DataSources { private InitialContext ctx; private DataSource ds; private Connection conn; private Statement stmt; private HashMap map = new HashMap(); public Boolean DBConnet() {
try {
ctx = new InitialContext();
ds = (DataSource) ctx.lookup("java:comp/env/jdbc/mysql");
// ds = (DataSource) ctx.lookup("java:/ConnectDB");
conn = ds.getConnection();
// stmt = conn.createStatement();
} catch (Exception ex) {
System.err.print(ex);
return false;
}
return true;
}
@SuppressWarnings( { "unused", "unchecked" })
public List getResultList(String sql) {
try {
stmt = conn.createStatement();
java.sql.ResultSet rs = stmt.executeQuery(sql); List coulumn = null;
List row = new ArrayList();
while (rs.next()) {
coulumn = new ArrayList();
for (int i = 1; i <= rs.getMetaData().getColumnCount(); i++) {
coulumn.add(rs.getString(i));
}
row.add(coulumn);
}
rs.close();
return row; } catch (SQLException e) {
System.err.print(e);
return null;
}
}
@SuppressWarnings( { "unused", "unchecked" })
public List getOneRowResult(String sql) {
try {
stmt = conn.createStatement();
java.sql.ResultSet rs = stmt.executeQuery(sql);
List list = null;
list = new ArrayList();
while (rs.next()) {
for (int i = 1; i <= rs.getMetaData().getColumnCount(); i++) {
list.add(rs.getString(i));
}
}
rs.close();
return list; } catch (SQLException e) {
System.err.print(e);
return null;
}
}
public Boolean executeSQL(String sql) {
try {
stmt = conn.createStatement();
stmt.executeUpdate(sql);
} catch (SQLException e) {
System.err.print(e);
return false;
}
return true;
}
}
下面是业务操作的,继承他.
public Boolean deleteCompany(int company_id){
Boolean i;
String sql="delete from book where company_id="+company_id;
i=this.executeSQL(sql);
ds.onClose();
return true;
}运行之后报错,空指针
java.lang.NullPointerException
at org.tdrms.datamanage.DataSources.executeSQL(DataSources.java:227)
at org.tdrms.bean.db.CompanyOPBean.deleteCompany(CompanyOPBean.java:16)
at org.tdrms.report.struts.action.DeletecompanyAction.execute(DeletecompanyAction.java:29)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.ecside.filter.ECSideFilter.doFilter(ECSideFilter.java:188)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Unknown Source)
DBConnet()的建立数据库连接的代码啊!? public Boolean deleteCompany(int company_id) {
Boolean i;
String sql = "delete from book where company_id=" + company_id;
ds.DBConnet(); // 加上这一行看看
i = this.executeSQL(sql);
ds.onClose();
return true;
}