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

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

  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表信息如下

 

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

 

  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数据类型

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
package com.hexiang.utils.dao; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Properties; import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; import javax.sql.DataSource; import org.apache.log4j.Logger; public class DBConnection { /** * 获得与数据库连接 * * @param path * @return Connection */ public static Connection getConn(String classDriver, String url, String user, String pwd) { try { Class.forName(classDriver); return DriverManager.getConnection(url, user, pwd); } catch (ClassNotFoundException ex) { ex.printStackTrace(); } catch (SQLException ex) { ex.printStackTrace(); } return null; } public static Connection getConn(DataSource dataSource) { try { return dataSource.getConnection(); } catch (SQLException ex) { ex.printStackTrace(); } return null; } public static Connection getConn(String jndiName) { try { Context ctx; ctx = new InitialContext(); DataSource dataSource = (DataSource) ctx.lookup("java:comp/env/" + jndiName); return dataSource.getConnection(); } catch (NamingException ex) { ex.printStackTrace(); } catch (SQLException ex) { ex.printStackTrace(); } return null; } public static Connection getConn(Properties properties) { try { String driver = properties.getProperty("jdbc.driverClassName"); String url = properties.getProperty("jdbc.url"); String user = properties.getProperty("jdbc.username"); String password = properties.getProperty("jdbc.password"); Class.forName(driver); return DriverManager.getConnection(url, user, password); } catch (ClassNotFoundException ex) { ex.printStackTrace(); } catch (SQLException ex) { ex.printStackTrace(); } return null; } /** * oracle连接 * * @param path * @return Connection */ public static Connection getOracleConn(String
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值