Java连接数据库是软件开发中的一个常见需求,尤其是在企业级应用中。通过Java应用程序与数据库进行交互,可以实现数据的增删改查等操作。本文将详细介绍两种常用的Java连接数据库的方法:JDBC-ODBC桥接方式和数据驱动方式,并以MySQL数据库为例进行具体说明。 ### 一、JDBC-ODBC桥接方式 JDBC-ODBC桥接方式是一种早期的Java数据库连接方式,它通过JDBC-ODBC桥接器将Java应用程序的JDBC调用转换为ODBC调用,再由ODBC驱动程序完成与特定数据库的通信。 #### 步骤详解: 1. **加载JDBC-ODBC桥接驱动** ```java Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); ``` 这行代码用于加载JDBC-ODBC桥接驱动,使得后续的数据库连接成为可能。 2. **建立数据库连接** 使用`DriverManager.getConnection()`方法建立到数据库的连接。参数字符串中包含了数据库的ODBC数据源名称(DSN),例如: ```java Connection c = DriverManager.getConnection("jdbc:odbc:studentDatabase"); ``` 其中,`studentDatabase`是预先在ODBC数据源管理器中配置的数据源名称。 3. **创建SQL语句执行对象** 创建`Statement`对象,用于执行SQL语句: ```java Statement s = c.createStatement(); ``` 接下来,可以通过`executeUpdate()`或`executeQuery()`等方法执行具体的SQL语句。 #### 示例代码: ```java import java.sql.Connection; import java.sql.DriverManager; import java.sql.Statement; public class J_Access { public static void main(String[] args) { try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection c = DriverManager.getConnection("jdbc:odbc:studentDatabase"); Statement s = c.createStatement(); s.executeUpdate("CREATE TABLE 学生成绩 (学生 integer CONSTRAINT authIndex PRIMARY KEY, 姓名 char(20), 成绩 integer)"); System.out.println("创建学生成绩表成功"); s.close(); c.close(); } catch (Exception e) { e.printStackTrace(); } } } ``` ### 二、数据驱动方式 数据驱动方式是更现代、更高效的Java数据库连接方法,它直接使用数据库供应商提供的JDBC驱动,无需ODBC桥接器,因此性能更好。 #### 以MySQL为例: 1. **导入数据库驱动程序** 需要下载并导入MySQL的JDBC驱动程序,例如`mysql-connector-java-5.1.13.jar`。 2. **加载数据库驱动** ```java Class.forName("com.mysql.jdbc.Driver"); ``` 加载MySQL的JDBC驱动,使Java能够识别并使用该驱动。 3. **建立数据库连接** 使用`DriverManager.getConnection()`方法建立连接,参数中包含数据库URL、用户名和密码: ```java Connection con = DriverManager.getConnection("jdbc:mysql://localhost/mydata?user=root&password=root"); ``` 4. **创建SQL语句执行对象** 同样,创建`Statement`对象用于执行SQL语句: ```java Statement s = con.createStatement(); ``` #### 示例代码: ```java import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class Test { public static void main(String[] args) { Connection con = null; Statement s = null; ResultSet r = null; try { Class.forName("com.mysql.jdbc.Driver"); // 加载驱动 con = DriverManager.getConnection("jdbc:mysql://localhost/mydata?user=root&password=root"); s = con.createStatement(); // 执行SQL语句,例如查询 String sql = "SELECT * FROM mytable"; r = s.executeQuery(sql); while (r.next()) { System.out.println(r.getString("column_name")); } } catch (SQLException e) { e.printStackTrace(); } finally { if (r != null) try { r.close(); } catch (SQLException ignore) {} if (s != null) try { s.close(); } catch (SQLException ignore) {} if (con != null) try { con.close(); } catch (SQLException ignore) {} } } } ``` 通过以上两种方法,Java应用程序可以有效地连接并操作数据库,无论是使用传统的JDBC-ODBC桥接方式还是更现代的数据驱动方式,都能满足不同的场景需求。
剩余6页未读,继续阅读
- 粉丝: 1
- 资源: 40
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 系统性风险计算代码合集(VaR、CoVaR、MES、DCCGARCH等,附图片附件)-最新出炉.zip
- 稀缺!2011-2022年上市公司网络搜索指数数据整理-最新出炉.zip
- 正大杯全国大学生市场调查与分析大赛培训课件资料集-最新出炉.zip
- 已去重的67个“绿色金融”主题DID政策汇总-最新出炉.zip
- 相对价格法计算市场分割或一体化指数数据与方法-最新出炉.zip
- 长期和短期机构投资者持股比例Stata代码及2000-2022年数据-最新出炉.zip
- 中国GDP空间分布公里网格数据集分享-最新出炉.zip
- 整理更新至2022年的境外投资企业(机构)备案结果公开名录-最新出炉.zip
- 中国版Fama-French三因子模型数据与Stata代码(2000-2023年)推荐-最新出炉.zip
- 中国地级市WebofScience论文作者城市间合作次数网络数据资源-最新出炉.zip
- 中国大学生学习与发展追踪研究(CCSS)调查数据-最新出炉.zip
- 中国各省、市2000-2022乡村振兴水平数据及Stata计算代码-最新出炉.zip
- 中国各城市至港口最短距离(km)数据大全-最新出炉.zip
- 中国地区家谱数据-宗族文化数据库资源-最新出炉.zip
- 中国各省份实际人均GDP面板数据汇总-最新出炉.zip
- 中国各省海外市场接近度精准计算数据-最新出炉.zip