if (getDbType().equalsIgnoreCase("Sybase"))//create the connection to the Sybase with the jdbc thin driver and the parameters { DriverManager.registerDriver(new SybDriver()); conn = DriverManager.getConnection ("jdbc:sybase:Tds:" + getDbServer() + ":" + getDbPort() + "/" + getDbSID()+"?charset=eucgb", getDbUserID(), getDbPassword()); } else if(getDbType().equalsIgnoreCase("Oracle"))//create the connection to the Oracle with the jdbc thin driver and the parameters { DriverManager.registerDriver(new OracleDriver()); conn = DriverManager.getConnection ("jdbc:oracle:thin:@"+getDbServer() + ":" + getDbPort() + ":" + getDbSID(), getDbUserID(), getDbPassword()); } statement = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
比如我访问本地sql server数据库
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con = DriverManager.getConnection(dbUrl, user, password);
访问其它的数据库,dburl不同就是了
当然,首先是你得有该数据库的驱动,或者到控制面版-管理工具-数据源-选择系统DSN,添加对应数据库的数据源(选择对应数据库驱动)即可。
{
DriverManager.registerDriver(new SybDriver());
conn = DriverManager.getConnection ("jdbc:sybase:Tds:" + getDbServer() + ":" + getDbPort() + "/" + getDbSID()+"?charset=eucgb", getDbUserID(), getDbPassword());
}
else if(getDbType().equalsIgnoreCase("Oracle"))//create the connection to the Oracle with the jdbc thin driver and the parameters
{
DriverManager.registerDriver(new OracleDriver());
conn = DriverManager.getConnection ("jdbc:oracle:thin:@"+getDbServer() + ":" + getDbPort() + ":" + getDbSID(), getDbUserID(), getDbPassword());
}
statement = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
如果你在Windows平台下干活的话。请你还是使用ODBC桥吧。
如果你在Linux/Unix平台下作的话。你可以用JDBC的第四类驱动。
比如mysql在网站有mmsql的第四类驱动是用纯java写的真正跨平台
比如oracle自带第四类驱动。
如果你在Windows平台下干活的话。请你还是使用ODBC桥吧。
不太赞同你的观点,撇开速度不谈,
如果机器上没有装Oracle的客户端,你用ODBC桥能连起来吗?
其实我需要的是DriverManger的包,还有就是url,请各位兄弟能支持我.
public DataBase(String dbURL, DrawFrame frame){
try{
df = frame;
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
if( dbURL == null )
url = "jdbc:odbc:;DRIVER=Microsoft Access Driver (*.mdb);DBQ=rolepay.mdb";
else
url = "jdbc:odbc:;DRIVER=Microsoft Access Driver (*.mdb);DBQ=" + dbURL;
connection = DriverManager.getConnection(url, "", "");
DatabaseMetaData md = connection.getMetaData();
String[] type = new String[1];
type[0] = "TABLE";
int i = 0;
ResultSet rs = md.getTables(null,null,"%",type);
while(rs.next()){
i++;
}
tableName = new String[i];
i=0;
rs = md.getTables(null,null,"%",type);
while(rs.next()){
tableName[i++] = rs.getString(3);
}
}
catch(SQLException e){
e.printStackTrace();
}
catch(ClassNotFoundException e){ e.printStackTrace();}
}
不需要JDBC-ODBC桥的解决方案,不过我也非常感谢你.
一般在他的帮助文件里都有连接说明
Connection conn=null;
String sDBDriver=Page.getDbDriver();
String sConnUrlStr=Page.getConnUrl();
try {
Class.forName(sDBDriver);
} catch (java.lang.ClassNotFoundException e) {
System.out.println("Class forName Error:"+e.getMessage());
}
try {
conn=DriverManager.getConnection(sConnUrlStr,Page.getDbUserID(),Page.getDbPassword());
System.out.println("connection successfule!");
} catch (SQLException ex) {
System.out.println("getConnection Error:"+ex.getMessage());
}
return conn;
}
注:Page的四个方法分别是为了取得属性文件中常量值。
举例说明:(DBMS:DB2,DB name:WZCG,server name:wz-server)
JDBC连接: sDBDriver:COM.ibm.db2.jdbc.net.DB2Driver
sConnUrlStr: jdbc:db2://wz-server/wzcg
ODBC连接: sDBDriver:sun.odbc.jdbc.JdbcOdbcDriver
sConnUrlStr: jdbc:odbc:wzcg或者:
public static Connection getConnection() throws Exception {
InitialContext ic=new InitialContext();
DataSource ds=(DataSource)ic.lookup("java:comp/env/jdbc/wzcg");
Connection conn=ds.getConnection();
return conn;
}
注:lookup的常量是java:comp/env/加自己在WEBSERVER中定义的名字
如用的是RESIN,则配置文件中应有:
<resource-ref>
<res-ref-name>jdbc/wzcg</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<init-param driver-name="COM.ibm.db2.jdbc.net.DB2Driver"/>
<init-param url="jdbc:db2://wz-server/wzcg"/>
<init-param user="db2admin"/>
<init-param password="ok12"/>
<init-param max-connections="20"/>
<init-param max-idle-time="30"/>
</resource-ref>