如何读取配置文件并连接后台数据库,且对数据库进行操作实例(查询或修改等)
2017-10-27 00:00
1101 查看
import java.io.BufferedInputStream; 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.Statement; import java.util.Properties; public class Test { public static void main(String[] args) { // testPreparedStatement(); // testStatement(); testProperties(); testUpdate(); } public static Properties getProperties() { Properties prop = new Properties(); try { // /加载属性列表 //InputStream in = new BufferedInputStream(new FileInputStream( //"D:\\myselenium\\config.properties")); //读取当前工程下的配置文件 InputStream in =Test.class.getResourceAsStream("/properties/config.properties"); //当配置文件粘贴到工程中,与类文件同级或放于一个文件夹内时,加载配置文件得用当前类名.class prop.load(in); } catch (IOException e) { e.printStackTrace(); } return prop; } public static void testUpdate() { Properties prop = getProperties(); Connection con = null;// 创建一个数据库连接 // 创建预编译语句对象,一般都是用这个而不用Statement--PreparedStatement表示预编译的 SQL 语句的对象。 Statement statement = null; ResultSet resultset=null; try { Class.forName(prop.getProperty("orcal.driverName"));// 加载Oracle驱动程序--返回与带有给定字符串名的类或接口相关联的 Class 对象 System.out.println("开始尝试连接数据库!"); String url = prop.getProperty("PA18dburl");// 127.0.0.1是本机地址,XE是精简版Oracle的默认数据库名 String user = prop.getProperty("PA18dbuser");// 用户名,系统默认的账户名 String password = prop.getProperty("PA18sdbpsw");// 你安装时选设置的密码 con = DriverManager.getConnection(url, user, password);// 获取连接--DriverManager类管理一组 JDBC 驱动程序的基本服务 System.out.println("连接成功!"); String sql1="update t_accepted_customer_info i set custname='王赛333' where i.userid='10517733'"; String sql = "select * from t_accepted_customer_info i where i.userid='10517733'"; statement=con.createStatement(); System.out.println(sql1); int count = statement.executeUpdate(sql1);//增删改都用这个方法 System.out.println("count="+count); if(count>0){ System.out.println("success"); }else{ System.out.println("失败"); } resultset= statement.executeQuery(sql);//查询SQL并保存到结果集 while (resultset.next()){ System.out.println("学号:" + resultset.getInt("id") + "姓名:"+ resultset.getString("custname")+"idno:"+resultset.getString("idno")); } } catch (Exception e) { e.printStackTrace(); } finally { try { // 逐一将上面的几个对象关闭,因为不关闭的话会影响性能、并且占用资源 // 注意关闭的顺序,最后使用的最先关闭 if (statement != null) statement.close(); if (statement != null) statement.close(); if (con != null) con.close(); System.out.println("数据库连接已关闭!"); } catch (Exception e) { e.printStackTrace(); } } } public static void testProperties() { Properties prop = getProperties(); Connection con = null;// 创建一个数据库连接 PreparedStatement pre = null;// 创建预编译语句对象,一般都是用这个而不用Statement--PreparedStatement表示预编译的 SQL 语句的对象。 ResultSet result = null;// 创建一个结果集对象 try { Class.forName(prop.getProperty("orcal.driverName"));// 加载Oracle驱动程序 System.out.println("开始尝试连接数据库!"); String url = prop.getProperty("PA18dburl");// 127.0.0.1是本机地址,XE是精简版Oracle的默认数据库名 String user = prop.getProperty("PA18dbuser");// 用户名,系统默认的账户名 String password = prop.getProperty("PA18sdbpsw");// 你安装时选设置的密码 con = DriverManager.getConnection(url, user, password);// 获取连接--DriverManager类管理一组 JDBC 驱动程序的基本服务 System.out.println("连接成功!"); String sql = "select * from t_accepted_customer_info i where i.custname=? and i.userid= ?";// 预编译语句,“?”代表参数 pre = con.prepareStatement(sql);// 实例化预编译语句--创建一个 PreparedStatement 对象来将参数化的 SQL 语句发送到数据库 pre.setString(1, "王赛");// 设置参数,前面的1表示参数的索引,而不是表中列名的索引 pre.setString(2, "10517733");// 设置参数,前面的1表示参数的索引,而不是表中列名的索引 result = pre.executeQuery();// 执行查询,注意括号中不需要再加参数-- 在此 PreparedStatement 对象中执行 SQL 查询,并返回该查询生成的 ResultSet 对象。 while (result.next()) // 当结果集不为空时 System.out.println("学号:" + result.getInt("id") + "姓名:" + result.getString("custname")); } catch (Exception e) { e.printStackTrace(); } finally { try { // 逐一将上面的几个对象关闭,因为不关闭的话会影响性能、并且占用资源 // 注意关闭的顺序,最后使用的最先关闭 if (result != null) result.close(); if (pre != null) pre.close(); if (con != null) con.close(); System.out.println("数据库连接已关闭!"); } catch (Exception e) { e.printStackTrace(); } } } public static void testPreparedStatement() { Connection con = null;// 创建一个数据库连接 PreparedStatement pre = null;// 创建预编译语句对象,一般都是用这个而不用Statement ResultSet result = null;// 创建一个结果集对象 try { Class.forName("oracle.jdbc.driver.OracleDriver");// 加载Oracle驱动程序 System.out.println("开始尝试连接数据库!"); String url = "jdbc:oracle:" + "thin:@(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 10.25.167.101)(PORT = 1522))(ADDRESS = (PROTOCOL = TCP)(HOST = 10.25.167.102)(PORT = 1522))(LOAD_BALANCE = yes)(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = fatpa18)(FAILOVER_MODE = (TYPE = SELECT)(METHOD = BASIC)(RETRIES = 180)(DELAY = 5))))";// 127.0.0.1是本机地址,XE是精简版Oracle的默认数据库名 String user = "fat_dev";// 用户名,系统默认的账户名 String password = "paic1234";// 你安装时选设置的密码 con = DriverManager.getConnection(url, user, password);// 获取连接 System.out.println("连接成功!"); String sql = "select * from t_accepted_customer_info i where i.custname=? and i.userid= ?";// 预编译语句,“?”代表参数 pre = con.prepareStatement(sql);// 实例化预编译语句 pre.setString(1, "王赛");// 设置参数,前面的1表示参数的索引,而不是表中列名的索引 pre.setString(2, "21884");// 设置参数,前面的1表示参数的索引,而不是表中列名的索引 result = pre.executeQuery();// 执行查询,注意括号中不需要再加参数 while (result.next()) // 当结果集不为空时 System.out.println("学号:" + result.getInt("id") + "姓名:" + result.getString("custname")); } catch (Exception e) { e.printStackTrace(); } finally { try { // 逐一将上面的几个对象关闭,因为不关闭的话会影响性能、并且占用资源 // 注意关闭的顺序,最后使用的最先关闭 if (result != null) result.close(); if (pre != null) pre.close(); if (con != null) con.close(); System.out.println("数据库连接已关闭!"); } catch (Exception e) { e.printStackTrace(); } } } public static void testStatement() { Connection con = null;// 创建一个数据库连接 Statement statement = null;// 创建预编译语句对象,一般都是用这个而不用Statement ResultSet result = null;// 创建一个结果集对象 try { String custName = "王赛"; Class.forName("oracle.jdbc.driver.OracleDriver");// 加载Oracle驱动程序 System.out.println("开始尝试连接数据库!"); String url = "jdbc:oracle:" + "thin:@(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 10.25.167.101)(PORT = 1522))(ADDRESS = (PROTOCOL = TCP)(HOST = 10.25.167.102)(PORT = 1522))(LOAD_BALANCE = yes)(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = fatpa18)(FAILOVER_MODE = (TYPE = SELECT)(METHOD = BASIC)(RETRIES = 180)(DELAY = 5))))";// 127.0.0.1是本机地址,XE是精简版Oracle的默认数据库名 String user = "fat_dev";// 用户名,系统默认的账户名 String password = "paic1234";// 你安装时选设置的密码 con = DriverManager.getConnection(url, user, password);// 获取连接 System.out.println("连接成功!"); statement = con.createStatement(); String sql = "select * from t_accepted_customer_info i where i.custname='" + custName + "'";// 预编译语句,“?”代表参数 result = statement.executeQuery(sql);// 执行查询,注意括号中不需要再加参数 while (result.next()) // 当结果集不为空时 System.out.println("学号:" + result.getInt("id") + "姓名:" + result.getString("custname")); } catch (Exception e) { e.printStackTrace(); } finally { try { // 逐一将上面的几个对象关闭,因为不关闭的话会影响性能、并且占用资源 // 注意关闭的顺序,最后使用的最先关闭 if (result != null) result.close(); if (statement != null) statement.close(); if (con != null) con.close(); System.out.println("数据库连接已关闭!"); } catch (Exception e) { e.printStackTrace(); } } } }
以下是整个工程的图片,包括配置文件(可建立一个FOLDER文件,把配置文件粘贴到文件夹中);
若粘贴配置文件到工程中,则需要指定配置文件的存放路径,即//InputStream in = new BufferedInputStream(new FileInputStream( //"D:\\myselenium\\config.properties"));,如
一、关于配置文件的创建如下:
1、先新建一个文本文档,修改后缀成.properties,这样就可以叫配置文件了
2、config.properties配置文件的编写内容类似如下:
orcal.driverName=oracle.jdbc.driver.OracleDriver
#PA18-UAT
PA18dburl=jdbc:oracle:thin:@(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = spa181.dbstg.paic.com.cn)(PORT = 1521))(ADDRESS = (PROTOCOL = TCP)(HOST =spa182.dbstg.paic.com.cn)(PORT = 1521))(LOAD_BALANCE = yes)(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = hsspa18)(FAILOVER_MODE = (TYPE = SELECT)(METHOD = BASIC)(RETRIES = 180)(DELAY = 5))))
PA18dbuser=sisopr
PA18sdbpsw=pasc_stg_pa18
3、以上配置文件中的#号代表“注释”
二、下载java API帮助文档,查看 一些类或接口的方法及使用,能够尽快掌握编程方法,达到目的
三、连接数据库,必须下载ojdbc6-11.1.0.6.jar,然后添加JAR包到工程中(可先建个LIBS,把文件粘贴,然后右击添加),才能加载数据库驱动
四、自动化调用配置文件及连接后台数据库查询的编写思路:1、加载Oracle驱动程序;2、初始化连接串、用户名和密码,建立连接,连接数据库;3、连接数据库后,初始化SQL语名;4、对SQL语句发送到数据库进行编译;5、执行SQL,保存到结果集resultSet中;6、用.next()方法判断结果集,如不为空就通过游标一一输出 相应的结果;7、关闭连接等
注:JAVA中的异常处理,捕捉最大范围的异常才不会报错,异常范围太小会报异常,一般用Exception e
以下是自己写的一个查询数据库例子
package seleniumtest; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Properties; import java.sql.Connection; public class getPropertes { public static void main(String[] args) { testQuery(); } public static Properties getPRO() { Properties pro = new Properties(); pro.setProperty("PA18UAT", "11111111111111"); InputStream in = getPropertes.class.getResourceAsStream("config.properties"); try { pro.load(in); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return pro; } public static void testQuery() Properties pro = getPRO(); Connection conn = null; Statement statement = null; ResultSet result = null; try { Class.forName(pro.getProperty("orcal.driverName")); // 创建连接 String url = pro.getProperty("PA18dburl"); String user = pro.getProperty("PA18dbuser"); String pwd = pro.getProperty("PA18sdbpsw"); conn = DriverManager.getConnection(url, user, pwd); statement = conn.createStatement(); String sql = "select * from t_accepted_customer_info i where i.userid='10517733'"; result = statement.executeQuery(sql); while (result.next()) { System.out.println("id:" + result.getInt("id") + "\t" + "custname:" + result.getString("custname")); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { try { if (result != null) { result.close(); } if (conn != null) { conn.close(); } if (statement != null) { statement.close(); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }
以下是另外写的一个简单打印出配置文件中的所有键与值 的代码:
public class PropertyTest { public static void main(String[] args) { Properties prop = new Properties(); try {// 读取属性文件config.properties--用输入流类把配置文件读取出来 //BufferedInputStream(InputStream in) 创建一个 BufferedInputStream 并保存其参数,即输入流 in,以便将来使用,想当于创建一个缓冲区。 //InputStream in = new BufferedInputStream(new FileInputStream( //"D:\\myselenium\\config.properties")); //InputStream in = ClassLoader.class.getResourceAsStream("/properties/config.properties");//读取SRC下的配置文件 InputStream in=new FileInputStream("D:\\myselenium\\config.properties"); prop.setProperty("后管UAT", "http://soasadmin-stg.paic.com.cn/admin/admin/login.html"); prop.load(in); // /加载属性列表 Iterator<String> it = prop.stringPropertyNames().iterator();//stringPropertyNames方法返回一个Set键集,iterator()返回一个迭代元素的迭代器 while (it.hasNext()) {//如果仍有元素可以迭代,则返回 true String key = it.next();//返回迭代的下一个元素 System.out.println(key + ":" + prop.getProperty(key));//获取指定键的属性值 } in.close(); // /保存属性到b.properties文件 // FileOutputStream oFile = new FileOutputStream("config.properties", true);//true表示追加打开 //prop.setProperty("phone", "10086"); //prop.store(oFile, "The New properties file"); // oFile.close(); } catch (Exception e) { System.out.println(e); } }}
相关文章推荐
- 利用dbcp数据库连接池连接数据库,并利用dbtuils框架对数据库test中book表进行插入、删除、修改、查询的操作。
- 话说Java jdbc数据库连接,从配置文件中读取连接基本信息实例
- 对config文件中的配置进行新增修改删除读取操作
- 如何用一张JSP页面连接数据库,实现查询、修改操作
- 如何读取配置文件连接数据库
- DOM4J 读取XML配置文件进行数据库连接
- 利用dbcp数据库连接池连接数据库,并利用dbtuils框架对数据库test中book表进行插入、删除、修改、查询的操作。book表结构如下:(id,name,price,author,descrip
- 如何将数据库连接字符串保存在配置文件中并读取
- 使用weblogic连接池来得到数据库连接(通过配置文件进行读取的优化方案)
- JAVA读取XML文件并利用该文件对数据库进行配置操作
- 利用dbcp数据库连接池连接数据库,并利用dbtuils框架对数据库test中book表进行插入、删除、修改、查询的操作代码
- DOM4J 读取XML配置文件进行数据库连接
- JAVA读取XML文件并利用该文件对数据库进行配置操作
- 【java基础:JDBC】通过读取配置文件进行数据库连接并读取数据的Demostration
- 如何将数据库连接字符串保存在配置文件中并读取
- ADO.NET数据库编程 利用应用程序配置文件进行数据的读取
- C#使用XmlDocument操作XML进行查询、增加、修改、删除、保存应用的实例
- C#使用XmlDocument操作XML进行查询、增加、修改、删除、保存应用的实例
- 通过读取web.xml文件中的配置参数连接数据库(原)
- 在config文件中配置如何连接【mdf数据库文件】