JDBC连接数据库工具类及连接Access数据库示例

来源:互联网 发布:mysql deadlock 解决 编辑:程序博客网 时间:2024/05/17 00:51

1、JDBC连接各个数据库时,存在很多相同的代码部分,把这些部分单独写在一个类里面,根据传入的driver、url、user、password这些参数连接到特定的数据库,工具类代码如下:

[java] view plaincopy
  1. <span style="font-size:16px;">package mine.util.database;  
  2.   
  3. import java.sql.Connection;  
  4. import java.sql.DriverManager;  
  5. import java.sql.SQLException;  
  6. import java.sql.Statement;  
  7.   
  8. /** 
  9.  * 该工具类用于数据库连接,返回一个Statement对象,用户可以根据此对象执行sql语句获取结果 
  10.  */  
  11. public class DataBaseConnection {  
  12.     public static final String ACCESS_DRIVER = "sun.jdbc.odbc.JdbcOdbcDriver";  
  13.     public static final String MYSQL_DRIVER = "com.mysql.jdbc.Driver";  
  14.     public static final String ORACLE_DRIVER = "oracle.jdbc.driver.OracleDriver";  
  15.     public static final String SQLSERVER_DRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver";  
  16.   
  17.     private Statement st = null;  
  18.     private Connection connection = null;  
  19.   
  20.     public Statement getStatement(String driver, String url, String user,  
  21.             String password) {  
  22.         try {  
  23.             // 1、加载驱动程序  
  24.             Class.forName(driver);  
  25.   
  26.             // 2、通过url建立连接,连接到数据库  
  27.             connection = DriverManager.getConnection(url, user, password);  
  28.   
  29.             // 3、创建语句,connection可以看出缆道,Statement可以看出缆车  
  30.             st = connection.createStatement();  
  31.   
  32.         } catch (ClassNotFoundException e) {  
  33.             e.printStackTrace();  
  34.         } catch (SQLException e) {  
  35.             e.printStackTrace();  
  36.         }  
  37.         return st;  
  38.     }  
  39.   
  40.     public void close() {  
  41.         try {  
  42.             if (st != null)  
  43.                 st.close();  
  44.             if (connection != null)  
  45.                 connection.close();  
  46.         } catch (SQLException e) {  
  47.             e.printStackTrace();  
  48.         }  
  49.     }  
  50. }  
  51. </span>  


 

2、下面用JDBC-ODBC桥的方式连接Access数据库来测试一下这个工具类

 

    首先,配置odbc源,如下所示:

 

 

 

数据源student.mdb中ST表信息如下

 

接下来就是写代码了,代码如下:

 

[java] view plaincopy
  1. <span style="font-size:16px;">package demo.database;  
  2.   
  3. import java.sql.ResultSet;  
  4. import java.sql.SQLException;  
  5. import java.sql.Statement;  
  6.   
  7. import mine.util.database.DataBaseConnection;  
  8.   
  9. /* 
  10.  * 用工具类DataBaseConnection,连接Access数据库示例 
  11.  */  
  12. public class AccessDemo {  
  13.     public void connect() {  
  14.           
  15.         DataBaseConnection dbConn = new DataBaseConnection();  
  16.         //返回Statement对象  
  17.         Statement st = dbConn.getStatement(DataBaseConnection.ACCESS_DRIVER,  
  18.                 "jdbc:odbc:Access""""");  
  19.   
  20.         ResultSet rs = null;  
  21.         try {  
  22.             // 执行sql语句  
  23.             rs = st.executeQuery("select * from ST  ");  
  24.             // 获取结果集中的信息  
  25.             while (rs.next()) {// 注意rs当前指向null,须先next()移动到指向第一条记录  
  26.                 System.out.println(rs.getString("Sno") + "  "  
  27.                         + rs.getString("Sname") + "  " + rs.getString("Ssex")  
  28.                         + "  " + rs.getInt("Sage") + "  "  
  29.                         + rs.getString("Sdept"));  
  30.             }  
  31.             rs.close();  
  32.         } catch (SQLException e) {  
  33.             e.printStackTrace();  
  34.         }  
  35.         dbConn.close();  
  36.     }  
  37.   
  38.     public static void main(String[] args) {  
  39.         new AccessDemo().connect();  
  40.     }  
  41. }  
  42. </span>  


 

运行结果:

测试完毕

 

3、常用数据库url

 

4、数据库数据类型与对应的java数据类型

 

 

原创粉丝点击