一样啦,只不过jdbc driver不一样,url格式不一样罢了
解决方案 »
- 急急急~~~~求:java Swing的JTable设置一列或某个单元格代码实例
- 关于SCJP考试
- 请教 java的一个问题 急急急!
- 教程上的例子也会错?
- 为什么再dos下编译程序可以输出结果,但是利用applet再浏览器下编译提示类找不到?
- resize( width, height )的问题??没反应!
- jb7在win98下能安装成功吗?
- 在考试系统中怎么解决忽然掉线后,自动保存数据然后重新登录时还能接着答题?
- 求个java和js的正则表达式
- DBCP报错java.sql.SQLException: Already closed.
- 如何执行JAVA类
- 想做一个HTTP协议的解析,可以用来做web请求过滤。(50分)
比如我访问本地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>