java.sql.Driver是一个接口,它表示的是连接数据库的一个驱动程序类。每种数据库都有它自己的Driver类来实现与数据库服务器连接如Oracle:
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@svr:DB");
其实在JDBC的规范中要求每个实现了Driver接口的类(上述为OracleDriver)在静态方法中需要向
DriverManager注册自己
DriverManager.registerDriver(new OracleDriver());这样在DriverManager.getConnection,DriverManager会遍历已经注册的所有类,来确定使用哪个Driver来完成连接工作
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@svr:DB");
其实在JDBC的规范中要求每个实现了Driver接口的类(上述为OracleDriver)在静态方法中需要向
DriverManager注册自己
DriverManager.registerDriver(new OracleDriver());这样在DriverManager.getConnection,DriverManager会遍历已经注册的所有类,来确定使用哪个Driver来完成连接工作
//String url="jdbc:microsoft:sqlserver://192.168.0.1:1433;DatabaseName=test";
//test你的数据库的
//String user="sa";
//String password="";
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery(sql);
一般连数据库的规律
实在急联系我联系方式发到你的短信里了
DriverManager的应用我会
那么Driver如何应用?谢谢
所以造成死锁的是你的代码问题!!!!!
"ExecuteThread: '0' for queue: 'default'" daemon prio=5 tid=0x89f8290 nid=0xb34 waiting fo
r monitor entry [0x96ef000..0x96efdb8]
at com.inet.tds.a.executeQuery(Unknown Source)
at com.huiton.pub.dbx.PageQuery.getData(PageQuery.java:59)
at com.huiton.cerp.inv.inv7201View.processRequest(inv7201View.java:256)
at com.huiton.mainframe.control.web.RequestProcessor.processRequest(RequestProcess
or.java:90)
at com.huiton.mainframe.control.web.MainServlet.doProcess(MainServlet.java:189)
at com.huiton.mainframe.control.web.MainServlet.doGet(MainServlet.java:142)
at com.huiton.mainframe.control.web.MainServlet.doPost(MainServlet.java:73)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:26
3)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:20
0)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletConte
xt.java:2390)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:19
59)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:137)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)表示:最后调用的方法是 at com.inet.tds.a.executeQuery(Unknown Source)
其中的executeQuery方法又调用的有关DriverManager连接数据库的方法,这样能说没有它的原因么?
你最后的错误可能是由于JTA超时,数据库返回错误等原因,而非DriverManager的问题。
executeQuery确实调用了DriverManager方法,另外,如果正如你说只在获取连接的时候使用,那么如果同时在线人数增多 ,并行处理量加大,造成死锁的最大因素不就有可能是它。总之,我还是想用其他的方法应用数据库的连接,而非它