1 package org.warnier.zhang.jdbc; 2 3 import java.sql.Connection; 4 import java.sql.DriverManager; 5 import java.sql.ResultSet; 6 import java.sql.ResultSetMetaData; 7 import java.sql.SQLException; 8 import java.sql.Statement; 9 10 public class AccessTest { 11 12 /** 13 * @param args 14 * @throws ClassNotFoundException 15 * @throws SQLException 16 */ 17 public static void main(String[] args) throws ClassNotFoundException, 18 SQLException { 19 // 加载驱动程序;(虚拟机加载类,而非在编程的过程中要使用这个类。) 20 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 21 22 // 建立数据库连接; 23 Connection connection = DriverManager.getConnection("jdbc:odbc:Warrior"); 24 //注:制作Access数据源时出错的一些解决方案: 25 //1.选择ODBC 数据源(32 位)或者ODBC 数据源(64位)必须要与JDK(是32或64位)的版本一致。 26 //2.使用Office2007或更高版本的Access时,需要将数据库保存为Microsoft Access数据库(2002~2003格式), 27 //切记不要直接修改文件的扩展名为.mdb,否则会报“不能打开数据库 ‘(未知的)‘。应用程序可能无法识别该 28 //数据库,或文件可能损坏。应用程序可能无法识别该数据库,或文件可能损坏。”的错误。 29 30 // 创建SQL语句,执行语句,返回结果集; 31 Statement statement = connection.createStatement(); 32 ResultSet resultSet = statement.executeQuery("SELECT * FROM user"); 33 34 // 处理结果集(包括元数据); 35 // 打印属性名; 36 ResultSetMetaData rsMetaData = resultSet.getMetaData(); 37 for (int i = 1; i <= rsMetaData.getColumnCount(); i++) { 38 System.out.printf("%-8s\t", rsMetaData.getColumnName(i)); 39 } 40 System.out.println(); 41 42 // 打印属性值; 43 while (resultSet.next()) { 44 for (int i = 1; i <= rsMetaData.getColumnCount(); i++) { 45 System.out.printf("%-12s\t", resultSet.getString(i)); 46 } 47 System.out.println(); 48 } 49 50 // 关闭数据库连接;(连接数据库在Java应用程序中是笔很大的开销。) 51 connection.close(); 52 } 53 54 }
时间: 2024-10-13 19:47:48