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 实现

java 为啥要实现 function?

在Tomcat的安装目录下conf目录下的server.xml文件中增加一个xml代码片段,该代码片段中每个属性的含义与用途

在扩充XML文件之后,不会调用onCreate()

Linux SPI通过设备树文件添加设备