java 数据库读取工具类(读取config.properties配置文件)
2013-01-06 17:23
721 查看
数据库读取工具类
读取.properties文件
对应的配置文件如下:
package com.db; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import oracle.jdbc.driver.OracleDriver; import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; import javax.sql.DataSource; /** * 数据库连接工具类 * @version 1.0 */ public class JdbcConnection { // 定义线程本地变量,每个线程访问它都会获得不同的对象 // 使用ThreadLocal使一个连接绑定到一个线程上 private static ThreadLocal<Connection> currentConnection = new ThreadLocal<Connection>(); private static String username=null; //用户名 private static String password=null; //密码 private static String dbName=null; //数据库名称 private static String ip=null; //数据库服务器IP地址 private static String resourceName=null; //为null时不使用连接池, jdbc/mysql或jdbc/oracle或jdbc/derby private static String databaseType = "oracle"; private static void initParams(){ username=DbConfig.getInstance().getDb_username(); password=DbConfig.getInstance().getDb_password(); dbName=DbConfig.getInstance().getDb_name(); ip=DbConfig.getInstance().getIp(); } /** * * @return 得到一个数据库连接 * @throws SQLException */ public static Connection getConnection() throws SQLException { Connection conn = currentConnection.get(); if (conn == null) { if(null==resourceName){ if("mysql".equals(databaseType.toLowerCase())){ conn = getMySqlConnection(); }else if("oracle".equals(databaseType.toLowerCase())){ conn = getOracleConnection(); }else if("derby".equals(databaseType.toLowerCase())){ conn = getDerbyConnection(); }else{ System.out.println("在 JdbcConnection.java 中数据库类型没有设置"); throw new SQLException("数据库类型未设置"); } }else{ conn = getConnectionByPool(); } currentConnection.set(conn); } return conn; } /** * 关闭Oracle数据库连接 * @throws SQLException */ public static void closeConnection() throws SQLException{ Connection conn = currentConnection.get(); conn.close(); currentConnection.set(null); } //获得Oracle数据库连接 private static Connection getOracleConnection(){ initParams(); Connection conn = null; try { Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); //加载驱动 conn= DriverManager.getConnection("jdbc:oracle:thin:@"+ip+":1521:"+dbName,username,password); } catch (ClassNotFoundException e) { e.printStackTrace(); System.out.println("Oracle驱动没找到"); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } return conn; } //获得MySql数据库连接 private static Connection getMySqlConnection(){ initParams(); Connection conn = null; try { Class.forName("com.mysql.jdbc.Driver").newInstance(); //加载驱动 String url = "jdbc:mysql://"+ip+":3306/"+dbName+"?useUnicode=true&characterEncoding=utf8"; conn = DriverManager.getConnection(url, username, password); } catch (ClassNotFoundException e) { e.printStackTrace(); System.out.println("MySql驱动没找到"); } catch (SQLException e) { e.printStackTrace(); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } return conn; } //获取Derby数据库连接 private static Connection getDerbyConnection(){ initParams(); Connection conn = null; try { Class.forName("org.apache.derby.jdbc.ClientDriver").newInstance(); //加载驱动 String url = "jdbc:derby://"+ip+":1527/"+dbName+";create=true"; conn = DriverManager.getConnection(url, username, password); } catch (ClassNotFoundException e) { e.printStackTrace(); System.out.println("Derby驱动没找到"); } catch (SQLException e) { e.printStackTrace(); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } return conn; } //获取连接池连接 private static Connection getConnectionByPool(){ try { Context ctx = new InitialContext(); Context subContext = (Context)ctx.lookup("java:comp/env"); String dsName=""; dsName = resourceName; DataSource dataSource = (DataSource)subContext.lookup(dsName); //上面两句可以合写成下边这句 //ctx.lookup("java:comp/env/jdbc/oracle");// java:comp/env/ 规定:加前缀指定资源 return dataSource.getConnection(); } catch (NamingException e) {e.printStackTrace();} catch (SQLException e) {e.printStackTrace();} return null; } }
读取.properties文件
package com.db; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.net.URISyntaxException; import java.util.Properties; /** * 数据库访问配置文件各参数的获取 * @author lzx * */ public class DbConfig { //数据库及server配置文件路径 private static final String ACTIONPATH = "config.properties"; private static DbConfig instance=null; private String db_username=null; private String db_password=null; private String db_name=null; private String ip=null; private String ags_user=null; private String ags_password=null; private String ags_domain=null; private String ags_host=null; private String ags_servicename=null; private DbConfig(){} public String getDb_username() { return db_username; } public String getDb_password() { return db_password; } public String getDb_name() { return db_name; } public String getIp() { return ip; } public String getAgs_user() { return ags_user; } public String getAgs_password() { return ags_password; } public String getAgs_domain() { return ags_domain; } public String getAgs_host() { return ags_host; } public String getAgs_servicename() { return ags_servicename; } public static DbConfig getInstance(){ if(instance==null){ instance= new DbConfig().getNewDbConfig(); } return instance; } private DbConfig getNewDbConfig(){ DbConfig dc=new DbConfig(); Properties prop = new Properties(); String path=null; FileInputStream fis=null; try { path = DbConfig.class.getClassLoader().getResource("").toURI().getPath(); fis = new FileInputStream(new File(path + ACTIONPATH)); prop.load(fis); dc.db_username=prop.getProperty("db_username"); dc.db_password=prop.getProperty("db_password"); dc.db_name=prop.getProperty("db_name"); dc.ip=prop.getProperty("ip"); dc.ags_user=prop.getProperty("ags_user"); dc.ags_password=prop.getProperty("ags_password"); dc.ags_domain=prop.getProperty("ags_domain"); dc.ags_host=prop.getProperty("ags_host"); dc.ags_servicename=prop.getProperty("ags_servicename"); } catch (URISyntaxException e) { e.printStackTrace(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return dc; } }
对应的配置文件如下:
config.properties #database username db_username=sde #database password db_password=sde #database server name db_name=RASA #database server ip ip=localhost #arcgis server username ags_user=zj #arcgis server password ags_password=0. #arcgis server user domain ags_domain=zj #arcgis server host address ags_host=localhost #arcgis server feature service name ags_servicename=map
相关文章推荐
- java 数据库读取工具类(读取config.properties配置文件)
- java 数据库读取工具类(读取config.properties配置文件)
- java 数据库读取工具类(读取config.properties配置文件)[包含线程安全]
- java工具类开发之日期工具类DateUtils和读取属性配置文件工具类PropertiesUtils
- java读取config.properties配置文件
- Java读取properties文件,得到数据库的配置信息
- JAVA PropertiesConfig读取配置文件出现乱码
- 针对config.properties的配置文件读取的工具类
- Java语言读取配置文件config.properties
- All about JAVA 读取配置文件的方法 (这里是config.properties)
- java操作数据库的类——SqlHelper(读取properties配置文件)
- java操作数据库的类——SqlHelper(读取properties配置文件)
- Eclipse和Tomcat和Java读取配置文件工具类PropertiesUtil
- JavaWeb之JDBC(二)采用读取配置文件方式编写JDBC的工具类,获取数据库的连接
- 方法:一个简单的读取配置文件.properties的工具类 JAVA
- Java读取配置文件工具类PropFileConfig
- java读取properties配置文件工具类
- java读取config.properties配置文件
- java 通过 Properties 读取数据库配置 .properties 文件的使用。
- Java之数据库MYSQL、JDBC工具类、properties配置文件