- 浏览: 36899 次
- 性别:
- 来自: 西安
最新评论
Java JDBC 连接Oracle和MySql数据库
本文是通过Java JDBC连接Oracle和MySql数据库,其中用到了使用properties配置文件,所以在ConnectionFactory中java.util.Properties解析db-conn-config.properties配置文件。
1.首先看看db-conn-param.properties的写法:
#######################Oracle########################### oracle.driver: oracle.jdbc.driver.OracleDriver oracle.url: jdbc:oracle:thin:@localhost:1521:xcz oracle.username: scott oracle.password: tiger #######################Oracle########################### ######################MYSQL############################# mysql.driver = com.mysql.jdbc.Driver mysql.url = jdbc:mysql://localhost:3306/mysql mysql.username = root mysql.password = xcz ######################MYSQL#############################
注意:
* "oracle.jdbc.driver.OracleDriver" 等字符串前后面不可以有空格,否则会出现找不到驱动或用户名、密码错误等异常。
* properties 中字符串写入形式如同键值对,所以可以同上使用“=”或“:”把key与value隔开。
* properties 中value字符串不能使用引号包裹。
2.创建ConnectionFactory:
package com.orcl.util; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.Properties; import java.util.UUID; public class ConnectionFactory { /** * 驱动 */ private String driver; /** * 连接字符串 */ private String url; /** * 数据库登录用户名称 */ private String username; /** * 数据库登录密码 */ private String password; private String db; /** * 常量代表"ORACLE" */ public final static String ORACLE_DB = "oracle"; /** * 常量代表"MYSQL" */ public final static String MYSQL_DB = "mysql"; /** * 单例模式 获取一个数据库连接工厂 */ private static ConnectionFactory connFactory = null; public static synchronized ConnectionFactory getConnFactoryInstance(String db){ if(connFactory == null){ connFactory = new ConnectionFactory(db); } return connFactory; } private ConnectionFactory(String db){ try { initOrclParams(db); } catch (IOException e) { e.printStackTrace(); } } /** * 通过配置文件获取数据库连接参数 * @param db 数据库名称 * @throws IOException */ private void initOrclParams(String db) throws IOException{ Properties properties = new Properties(); InputStream in = new FileInputStream(new File("db-conn-config.properties")); properties.load(in); if(db.equals(ORACLE_DB)) { getParams(properties,db); } else if(db.equals(MYSQL_DB)) { getParams(properties,db); } } /** * 根据数据库名获取相应的参数 * @param p Properties * @param db */ private void getParams(Properties p,String db){ //注意:如果不用trim(),这样properties文件中的字符串后面不能有空格,否则会出错 driver = p.getProperty(db + ".driver").trim(); url = p.getProperty(db + ".url").trim(); username = p.getProperty(db + ".username").trim(); password = p.getProperty(db + ".password").trim(); } /** * 获取连接对象 * @param db 连接的数据库名 取值于ConnectionFactory中的常量:ORCL_DB/MYSQL_DB * @return */ public Connection getConn() { Connection conn = null; try { Class.forName(driver); conn = DriverManager.getConnection(url, username, password); // 设置不自动提交 conn.setAutoCommit(false); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } return conn; } /** * 关闭操作 * @param conn * @param pst * @param rs */ public static void close(Connection conn, PreparedStatement pst, ResultSet rs) { try { if (rs != null) { rs.close(); } if (pst != null) { pst.close(); } if (conn != null) { conn.close(); } } catch (SQLException e) { e.printStackTrace(); } } /** * 获取UUID * @return */ public String getUUID() { return UUID.randomUUID().toString(); } public void setPassword(String password) { this.password = password; } public String getDriver() { return driver; } public void setDriver(String driver) { this.driver = driver; } public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public String getDb() { return db; } public void setDb(String db) { this.db = db; } }
3.测试:
@Test public void test() { ConnectionFactory factory = ConnectionFactory.getConnFactoryInstance(ConnectionFactory.ORACLE_DB); Connection conn = factory.getConn(); try { PreparedStatement pst = conn.prepareStatement("select * from emp"); java.sql.ResultSet rs = pst.executeQuery(); while (rs.next()) { System.out.println(rs.getString(2)); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
附录:
关于properties,生产xml,并从其中解析出来的应用
Properties prop = new Properties(); prop.setProperty("ONE", "1"); prop.setProperty("TWO", "2"); prop.setProperty("THREE", "3"); prop.setProperty("FOUR", "4"); File f = new File("temp.xml"); if(!f.exists()){ f.createNewFile(); } OutputStream stream = new FileOutputStream(f); prop.storeToXML(stream, null); stream.close();
解析:
Properties p = new Properties();
p.loadFromXML(new FileInputStream(f));
System.out.println(p.get("ONE"));
System.out.println(p.getProperty("TOW"));
p.list(System.out);
还有许多其他捷径方法,待应用后总结......
发表评论
-
java util
2012-09-17 11:01 0java.util 1.Currency ... -
java hashmap
2012-09-17 14:59 809public interface Map<K,V> ... -
java String类
2012-09-12 17:28 0package com.chinasoft.test1; ... -
java test1
2012-09-11 19:54 0package com.chinasoft.test1; ... -
iojava
2012-09-11 19:53 0package com.chinasoft.test1; ... -
java String类
2012-09-06 14:51 1231Java String 【String知识 ... -
Java 内部类
2012-09-06 09:52 835Java 内部类 分类:普通内部类、方法本地 ... -
java ppt
2012-09-04 22:34 712javappt
相关推荐
Java JDBC(Java Database Connectivity)是Java编程语言中用于与各种数据库进行交互的一组接口和类。它提供了一种标准化的方法,让程序员可以使用SQL语句访问数据库,而无需关心具体的数据库实现细节。在Java应用...
Java JDBC学生数据管理系统是一个利用Java编程语言和JDBC(Java Database Connectivity)技术设计的应用,用于高效管理和操作学生数据。这个系统提供了用户友好的界面,使得用户可以方便地执行SQL(Structured Query...
Java JDBC(Java Database Connectivity)是Java编程语言中用于与各种关系数据库进行交互的一组接口和类。它作为标准API,允许开发人员通过编写Java代码来访问和操作数据库,无需了解数据库特定的SQL语法或者驱动...
Java JDBC(Java Database Connectivity)是Java编程语言中用于与各种关系数据库进行交互的一组标准API。JDBC使得Java开发者能够编写可移植的数据库应用程序,无需针对不同数据库系统编写不同的代码。JDBC的核心是一...
Java JDBC(Java Database Connectivity)是Java语言中用于与数据库交互的一种技术,它为开发者提供了一种标准的方法来访问各种类型的数据库。在Java中连接SQL Server数据库时,你需要一个特定的驱动程序,通常是一...
### Java JDBC规范详解 #### 一、概述与背景 JDBC,即Java Database Connectivity,是Java平台中一种标准的数据访问技术,它允许Java程序通过一套统一的API接口访问各种关系型数据库。JDBC的出现解决了Java应用与...
Java JDBC(Java Database Connectivity)是Java编程语言中用于与各种数据库进行交互的一组接口和类。它是Java标准版(Java SE)的一部分,允许Java开发者执行SQL语句并处理结果。在深入探讨Java JDBC之前,先要理解...
Java JDBC 连接池是Java开发中非常关键的一部分,它能有效地管理数据库连接,提高应用程序的性能和效率。本实例提供了完美的Java JDBC连接池配置,适用于Oracle、MySQL和SQL Server等主流数据库,允许开发者轻松地在...
**JAVA JDBC教程** Java JDBC(Java Database Connectivity)是Java平台中的一个标准API,它允许Java应用程序连接到各种类型的数据库,实现数据的存取和处理。JDBC为开发者提供了一种统一的方式来访问不同的数据库...
javaJDBC编程.pptjavaJDBC编程.pptjavaJDBC编程.pptjavaJDBC编程.pptjavaJDBC编程.pptjavaJDBC编程.pptjavaJDBC编程.pptjavaJDBC编程.pptjavaJDBC编程.pptjavaJDBC编程.pptjavaJDBC编程.ppt
java jdbc odbc 桥连接包 如何实现JDBC-ODBC桥连接到Access
最全的javaJDBC技术的BaseDao,相当于框架封装了,引用之后直接调用其中的方法传递参数以及sql语句就可以使用了。
本项目"javajdbc宠物商店-Mysql数据库"是基于Java JDBC实现的一个宠物商店管理系统的数据库部分,它提供了与MySQL数据库交互的能力。在这个项目中,我们将深入探讨以下几个核心知识点: 1. **JDBC API**: JDBC API...
在Java编程语言中,JDBC(Java Database Connectivity)是一个用于与各种数据库进行交互的标准接口。JDBC提供了一套规范,使得Java程序员可以使用统一的方法来访问数据库,包括Oracle数据库。Oracle是世界上最流行的...
Java JDBC(Java Database Connectivity)是Java语言中用来规范客户端程序如何访问数据库的应用程序接口,它提供了标准的API,使得Java程序员能够使用SQL语句来访问数据库。本篇将通过一个小型示例,详细介绍如何...
Java JDBC(Java Database Connectivity)是Java编程语言中用于与各种数据库进行交互的一组接口和类。它是Java平台标准的一部分,允许开发人员编写数据库独立的代码,使得Java应用程序能够连接到不同类型的数据库,...
全面的 Java JDBC 编程学习知识总结 一张图搞定! 结构性强,便于记忆! 资源博客:https://blog.csdn.net/CodeYearn/article/details/89196038
Java JDBC(Java Database Connectivity)驱动则是Java程序与各种数据库进行交互的标准接口,使得Java开发者能够方便地访问和操作数据库。在本压缩包中,我们可能找到了用于连接MySQL 8.0的Java JDBC驱动,这将帮助...
SQLite JDBC 是一个开源的 Java 驱动程序,允许 Java 应用程序通过 JDBC API 连接到 SQLite 数据库。SQLite 是一个轻量级、自包含的数据库引擎,无需单独的服务器进程,非常适合嵌入式应用或者对小型项目的数据存储...
Java JDBC(Java Database Connectivity)是Java平台中用于与数据库交互的一组接口和类,它使得开发者可以使用标准的Java API来访问各种类型的数据库系统。在Java应用中,JDBC驱动扮演着桥梁的角色,将Java程序与...