java通过属性文件调用数据库
Posted LittleSpring
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java通过属性文件调用数据库相关的知识,希望对你有一定的参考价值。
import java.io.IOException; import java.io.InputStream; import java.sql.*; import java.util.ArrayList; import java.util.List; import java.util.Properties; public class DAOHelper { /** * * * @param args */ public static void main(String []args) { DAOHelper de=new DAOHelper(); String sql="select * from users"; List<Object[]> list=de.queryList(sql, null); for(int i=0;i<list.size();i++) { Object []obj=list.get(i); System.out.println(obj[1].toString()+" "+obj[2].toString()); } } // oracle连接属性设置 private static String driver; private static String url; private static String user; private static String passwd; //连接类和接口 Connection ct; PreparedStatement ps; ResultSet rs; // 读取属性文件初始化数据库连接变量 static { Properties pp=new Properties(); InputStream fis = DAOHelper.class.getClassLoader().getResourceAsStream("derby.properties"); try { pp.load(fis); driver=pp.getProperty("driver"); url=pp.getProperty("url"); user=pp.getProperty("username"); passwd=pp.getProperty("password"); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ if(pp!=null) pp.clear(); try { if(fis!=null) fis.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } public DAOHelper() { try { Class.forName(driver); ct=DriverManager.getConnection(url,user,passwd); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } public int Update(String sql,String []paras) { int count=0; try { ps=ct.prepareStatement(sql); // 注入参数 this.setParameters(paras); // 获得更新数据行数。 count=ps.executeUpdate() ; } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ this.close(); } return count; } /** * @param sql * @param paras 没有注入参数可为null或空串。 * @return 返回一个ResultSet结果集。 */ public ResultSet query(String sql,String[] paras) { try { ps=ct.prepareStatement(sql); this.setParameters(paras); rs=ps.executeQuery(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ //不能关。 } return rs; } /** * @param sql * @param paras 没有注入参数可为null或空串。 * @return 返回一个装有对象数组的List。 */ public List queryList(String sql,String []paras) { List<Object[]> list=new ArrayList<Object[]>(); try { ps=ct.prepareStatement(sql); this.setParameters(paras); rs=ps.executeQuery(); ResultSetMetaData rsmd=(ResultSetMetaData) rs.getMetaData(); int count=rsmd.getColumnCount(); // 将查询结果放入对象数组中。 while(rs.next()) { int rows= rs.getRow(); Object obj[]=new Object[count]; for(int j=0;j<count;j++) { obj[j]=rs.getString(j+1); } list.add(obj); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ this.close(); } return list;} public void close() { try { if(rs!=null) rs.close(); if(ps!=null) ps.close(); if(ct!=null) ct.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } private void setParameters(String[] paras) throws SQLException { if(paras!=null && !paras.equals("")) { for(int i=0;i<paras.length;i++) { ps.setString(i+1, paras[i]); } } }}
属性文件
sql.properties
username=sa password=bbc223344 url=jdbc:sqlserver://192.168.1.109:142;databaseName=QqDB driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
derby.properties
username=classiccars password=classiccars url=jdbc:derby://localhost:1527/myeclipse driver=org.apache.derby.jdbc.ClientDriver
mysql.properties
username=root password=1234 url=jdbc:mysql://192.168.1.114:3306/test driver=com.mysql.jdbc.Driver
oracle.properties
username=scott password=1234 url=jdbc:oracle:thin:@192.168.1.114:1521:oracle1 driver=oracle.jdbc.driver.OracleDriver
ps:属性文件中的ip地址、用户名和密码需要酌情修改
以上是关于java通过属性文件调用数据库的主要内容,如果未能解决你的问题,请参考以下文章
每当我尝试从 Fragment java 文件中更改片段的某些属性时,应用程序就会崩溃
ASP.net MVC 代码片段问题中的 Jqgrid 实现
在Tomcat的安装目录下conf目录下的server.xml文件中增加一个xml代码片段,该代码片段中每个属性的含义与用途