全栈工程师开发手册 (作者:栾鹏)
java教程全解
java实现使用JDBC-ODBC桥操作数据库。jdk1.8后不再使用,所以要使用换回1.7或加载1.7的包
测试代码
public static void main(String[] arg){
String url = "jdbc:odbc:student"; //"jdbc:microsoft:sqlserver://192.168.28.129:1433;DatabaseName=student";
String username="";
String password="";
try {
String dir = conn(url,username,password).getCatalog();
System.out.println(dir); //打印当前数据库的目录名称
} catch (Exception e) {
// TODO: handle exception
}
execute(conn(url,username,password),"insert into userinfo(name,address)values('switch','new York')");
query(conn(url,username,password),"select * from userinfo");
}
使用JDBC-ODBC桥操作数据库 类的实现
package com.lp.app.databate;
import java.sql.*;
public class odbcConn{
//获得数据连接
public static Connection conn(String url,String username,String password){
try {
//Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con = DriverManager.getConnection(url, username, password);
return con;
}catch(SQLException sqle){
System.out.println("can't connection db:"+sqle);
return null;
} catch (Exception e) {
System.out.println("Failed to load JDBC/ODBC driver.");
return null;
}
}
//执行查询SQL语句
public static void query(Connection con, String sql){
try{
if(con==null) return;
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(sql);
ResultSetMetaData rmeta = rs.getMetaData();
int numColumns = rmeta.getColumnCount();
while(rs.next())
{
for(int i = 0;i< numColumns;i++)
{
String sTemp = rs.getString(i+1);
System.out.print(sTemp+" ");
}
System.out.println("");
}
}catch(Exception e){
System.out.println("query error:"+e);
}finally{
try{
con.close();
}catch(SQLException se){}
}
}
//执行插入、更新、删除等没有返回结果集的SQL语句
public static void execute(Connection con, String sql){
try{
if(con==null) return;
Statement stmt = con.createStatement();
stmt.executeUpdate(sql);
}catch(Exception e){
System.out.println("query error:"+e);
}finally{
try{
con.close();
}catch(SQLException se){}
}
}
}