日期:2014-05-18  浏览次数:20818 次

jdbc连接问题
请问:
当使用jdbc的getConnection()方法连接数据库的时候 是什么去连接呢?是tomcat服务器去连接数据库还是其它的什么呢?
请各位详细发表各自的意见
非常感谢

------解决方案--------------------
数据库驱动去连
------解决方案--------------------
驱动连接
------解决方案--------------------
getConnection 只是一个连接啊。
可以用类似tomcat,weblogic等web服务器的自带连接池啊。
------解决方案--------------------
不是tomcat去连的...
是每个数据库都有自己的JDBC驱动包,开发厂商自己去实现这些接口
那么你用哪个数据库就要用相应的JDBC驱动包,这些jar就是对规范上那些接口的实现
------解决方案--------------------
探讨
数据库驱动去连

------解决方案--------------------
Tomcat 是运行网页的服务器。


连接数据库的还是 数据库驱动 

是每个厂商的数据库都有自己的JDBC驱动包,比如 sqljdbc.jar(微软Sqlserver 2005 的驱动包)
 这些jar就是对数据连接及处理接口的实现

DriverManager(驱动管理)类 用你加载好的的驱动来连接 与的URL 对应上的数据库
 
------解决方案--------------------
package connDAO;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class ConnDAO {
/*
* 定义连接SQL数据库变量及方法
*/
private String url = "jdbc:microsoft:sqlserver://localhost:1433;databasename=gongdakejiyuan";
private String driver="com.microsoft.jdbc.sqlserver.SQLServerDriver";
private String name = "sa";
private String pwd = "";

private Connection conn = null;//定义连接数据库变量
private Statement pstat = null;//定义执行SQL语句变量
private ResultSet rs = null;//定义获取结果集变量


/*
* 定义连接数据库方法
*/

public Connection getConn()
{
try {
Class.forName(driver);
conn = DriverManager.getConnection(url,name,pwd);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

return conn;
}
/*
* 定义执行SQL语句方法
*/
public Statement getStat()
{
Connection conn = getConn();
try {
// pstat = conn.createStatement();
pstat = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

return pstat;
}
/*
* 定义查询语句
*/
public ResultSet getSelRs(String sql)
{
Statement pstat = getStat();

try {
rs = pstat.executeQuery(sql);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return rs;
}
/*
* 定义更 删 改 方法
*/
public int dIUGetRs(String sql)
{
//定义变量 判断是否成功
int flog = -1;
Statement pstat = getStat();

try {
flog = pstat.executeUpdate(sql);
} catch (SQLException e) {
// TODO Auto-generated catch block
return 0;
}
return flog;
}
/*
* 定义关闭方法
*/
public void close()
{
try {
if(rs != null)
{
rs.close();
}
if(pstat != null)
{
pstat.close();
}
if(!conn.isClosed())
{
conn.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
 
}
}


------------------------------------------------
你看看 这个简单的连接~~~
应该