- 浏览: 36115 次
- 性别:
- 来自: 西安
最新评论
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 774public 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 1202Java String 【String知识 ... -
Java 内部类
2012-09-06 09:52 806Java 内部类 分类:普通内部类、方法本地 ... -
java ppt
2012-09-04 22:34 689javappt
相关推荐
java 使用 jdbc+spring 所需要的包
java jdbc连接sqlserver所需要的jar包
Java jdbc操作mysql Java jdbc操作mysql
在Java语言中,JDBC(Java DataBase Connection)是应用程序与数据库沟通的桥梁
javaJDBC模板 数据库相关驱动是JAVA驱动Oracle的第三方的包 项目模板中:JDBCPro是未加DAO的原始模板,JDBCFianl是加入后的
java的JDBC介绍
Java JDBC编程总结 Hibernate、TopLink等OR Mapping操作数据库的技术都是建立JDBC技术之上的,实际来说,他们的性能和JDBC是有很大差距的,但反过来说,如果JDBC用不好,还不如hibernate呢。暂且不说这些孰优孰劣的...
javaJDBC编程.pptjavaJDBC编程.pptjavaJDBC编程.pptjavaJDBC编程.pptjavaJDBC编程.pptjavaJDBC编程.pptjavaJDBC编程.pptjavaJDBC编程.pptjavaJDBC编程.pptjavaJDBC编程.pptjavaJDBC编程.ppt
java jdbc连接mySql的小例子,包含数据库文件,。导入数据库可以直接用
这是一个基于Java的数据库查询系统,可以通过可视化实现对表中数据的增删改查,完成对学生数据信息的管理
关于java JDBC 连接MYSQL数据库的例子,用的Eclipse 3.4,JDK1.6,MYSQL5.0,附上驱动。
JAVA JDBC教程.zip
java JDBC 关于MySql的增删除改查 数据库操作类 添加,修改,删除,查询
java jdbc 连接池实例 项目只要配数据源就可以直接启用, 也可以整合到你个项目里面, 可oracle、mysql、sqlserver自由切换方言。
初入门想学习好jdbc的,可以下载去看看,帮助很大!
java jdbc odbc 桥连接包 如何实现JDBC-ODBC桥连接到Access
最全的javaJDBC技术的BaseDao,相当于框架封装了,引用之后直接调用其中的方法传递参数以及sql语句就可以使用了。
Java的JDBC规范和实际用法具有很强的实用性。
不断致力于互操作性,Microsoft 提供与 SQL Server 和 Azure SQL 数据库使用了一个 Java 数据库连接 (JDBC) 驱动程序。 该驱动程序免费提供,不需要额外付费,并且可从任何 Java 应用程序、应用程序服务器或支持 ...
全面的 Java JDBC 编程学习知识总结 一张图搞定! 结构性强,便于记忆! 资源博客:https://blog.csdn.net/CodeYearn/article/details/89196038