JDBC连接
1.oracle
环境配置:classpath,添加E:\Oracle\product\10.2.0\db_1\jdbc\lib\classes12.jar;
新建一环境变量,JAVA_HOME,变量值为JDK目录(如:C:\Program Files\Java\jdk1.6.0_12).
在JAVA工程中添加ojdbc14.jar包的引用,在安装目录db_1\jdbc\lib目录下
程序:Class.forName("oracle.jdbc.driver.OracleDriver");
String url = "jdbc:oracle:thin:@localhost:1521:emily"; (emily为实例名,也就是SID)
Connection conn = DriverManager.getConnection(url, "resam", "resam"); (前一个resam为用户名,后一个为密码)
Statement stmt = conn.createStatement();
ResultSet rs=stmt.executeQuery("select * from aa"); (aa为resam用户下的一个表名)
while (rs.next()) {
System.out.println(rs.getString("smid"));
}
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
曾经出现的严重错误:在listener.ora中将(ADDRESS = (PROTOCOL = TCP)(HOST = liping)(PORT = 1521))中的HOST改为IP的话,上面的代码就需要将LOCALHOST改为IP,否则就有可能报网络监听连接失败的错误。
2.sql 2000
首先需要了解SQL2000是否打过SP4,SQL查询分析器-〉帮助-〉关于可以查看MSSQL的详细版本号,如果是 8.00.194 就是还没打补丁,8.00.760 就是SP3,8.00.2039 就是SP4,如果没有打SP4,可以直接到微软官网去下SP4.如果已经打过补丁,就可在微软官网去下SQL2000 DRIVER FOR JDBC的驱动,安装完驱动后,将安装目录下LIB文件夹中的三个JAR包添加引用至工程,还需在CLASSPATH里添加一下,注意,所有任务完成后请重启计算机,本人试过很多次,不重启是连不上的.
连接代码:
try {
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=testDel"; (若此代码连接仍存在问题,请单击SQLSERVER组下相应实例,右键单击_选择属性_常规_网络配置_启用协议中的TCP/IP中的默认端口设置为1433(在设置前一般都需要停止服务)).
String user="sa";
String password="liping";
Connection conn= DriverManager.getConnection(url,user,password);
Statement stat=conn.createStatement();
ResultSet result=stat.executeQuery("select * from SmRegister");
while(result.next()){
System.out.println(result.getString(1));
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
3.sql2005
http://www.cnblogs.com/yangfengming/archive/2009/06/15/1503386.html
4.DB2
这个要比ORACLE简单得多,不必在环境变量中添加额外变量,但仍需在工程中添加JAR包的引用db2jcc.jar,在安装目录IBM\SQLLIB\java目录下。
程序:Class.forName("com.ibm.db2.jcc.DB2Driver");
String url="jdbc:db2://localhost:50000/toolsdb"; //EBUSINES为数据库名
String user="db2admin";
String password="db2admin";
Connection conn= DriverManager.getConnection(url,user,password);
Statement stat=conn.createStatement();
ResultSet result=stat.executeQuery("select * from ADMINISTRATOR.BUSLINE");
while(result.next()){
System.out.println(result.getString(1));
}
}catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
在程序中ADMINISTRATOR.BUSLINE很关键,没有加ADMINISTRATOR,程序总会报SQLCODE=-204, SQLSTATE=42704的错误,在网上查了一下,原来是用户没写对,用db2admin.BUSLINE同样会报错,在控制中心查了一下,看到显示数据库中所有表的窗口中有模式这一列,试了一下,果真应是模式.表名,之后在控制中心新建一个表模式名称不一样,用模式.表名试验后无误,这才敢确定。
另附上DB2连接中的错误查看:http://os2ports.com/docs/DB2/db2m0/sql0200.htm。