能不能给我一个既能读又写入dbConfig.properties(数据库配置文件)java源代码?

driver=sun.jdbc.odbc.JdbcOdbcDriver
url=jdbc:odbc:student
username=
password=上面是我的dbConfig.properties 文件我不知如何用代码读和写它?请帮忙,谢谢!

这个我们公司的一个底层类,希望对你有帮助。 /**
* 读取属性文件
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2005</p>
* <p>Company: </p>
* @author zhanggy
* @version 1.0
*/
public class PropertyManager { private static PropertyManager manager = null;
private static Object managerLock = new Object(); /**
* Returns a Jive property.
*
* @param name the name of the property to return.
* @return the property value specified by name.
*/
public static String getProperty(String propsName,String name) {
if (manager == null) {
synchronized(managerLock) {
if (manager == null) {
manager = new PropertyManager(propsName);
}
}
}
return manager.getProp(name);
} private Properties properties = null;
private Object propertiesLock = new Object();
private String resourceURI; /**
* Creates a new PropertyManager. Singleton access only.
*/
private PropertyManager(String resourceURI) {
this.resourceURI = resourceURI;
} /**
* Gets a Jive property. Jive properties are stored in jive.properties.
* The properties file should be accesible from the classpath. Additionally,
* it should have a path field that gives the full path to where the
* file is located. Getting properties is a fast operation.
*
* @param name the name of the property to get.
* @return the property specified by name.
*/
protected String getProp(String name) {
//If properties aren't loaded yet. We also need to make this thread
//safe, so synchronize...
if (properties == null) {
synchronized(propertiesLock) {
//Need an additional check
if (properties == null) {
loadProps();
}
}
}
String property = properties.getProperty(name);
if (property == null) {
return null;
}
else {
return property.trim();
}
} /**
* Loads Jive properties from the disk.
*/
private void loadProps() {
properties = new Properties();
InputStream in = null;
try {
in = getClass().getResourceAsStream(resourceURI);
properties.load(in);
in.close();
}
catch (Exception e) {
System.err.println("Error reading properties in PropertyManager.loadProps() " + e);
e.printStackTrace();
}
finally {
try {
in.close();
} catch (Exception e) { }
}
}// public static void main(String[] args) {
// String dbtype = PropertyManager.getProperty("/dbconfig.properties", "dbtype");
// System.out.println("dbtype = "+dbtype);
// }
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-06-28
public class ConnectionHelper {
/**
* 通过JNDI获取数据源
*/
private static DataSource getDataSource(){
//建立JNDI的上下文
try {
InitialContext ct = new InitialContext();
DataSource source = (DataSource)ct.lookup("java:/comp/env/jdbc/shop");
return source;
} catch (Exception e) {
throw new RuntimeException("获取数据源失败",e);
}
}

//从Properties文件加载配置参数
public static Properties getConfig(){
Properties pro = new Properties();
InputStream is = ConnectionHelper.class.getResourceAsStream("/com/lxw/config/db.properties");
try {
pro.load(is);
return pro;
} catch (IOException e) {
throw new DBException("加载配置文件失败",e);
}
}

private static DataSource ds = null;
//自构建数据源
public static synchronized DataSource getMyDataSource(){
if(ds == null){
Properties pro = getConfig();
BasicDataSource bdc = new BasicDataSource();
bdc.setDriverClassName(pro.getProperty("dbDriver"));
bdc.setUrl(pro.getProperty("dbUrl"));
bdc.setUsername(pro.getProperty("dbUser"));
bdc.setPassword(pro.getProperty("dbPassword"));
String num = pro.getProperty("dbMaxActive");
if(num != null && num.equals("")){
bdc.setMaxActive(Integer.parseInt(num));
}
/*bdc.setDriverClassName("com.mysql.jdbc.Driver");
bdc.setUrl("jdbc:mysql://localhost:3306/shop");
bdc.setUsername("root");
bdc.setPassword("123");
bdc.setMaxActive(20);*/
ds = bdc;
}
return ds;
} //获取统一的数据库连接
public static Connection getCon(){
try {
//return getDataSource().getConnection();

//通过自构建的数据源获取连接
return getMyDataSource().getConnection();
} catch (SQLException e) {
throw new DBException("获取数据库连接失败",e);
}
}

//关闭连接
public static void closeCon(Connection con){
try {
if(null != con && !con.isClosed()){
con.close();
con = null;
}
} catch (SQLException e) {
throw new DBException("关闭数据库连接失败",e);
}
}
public static void main(String[] args) {
System.out.println(getCon());
System.out.println("获取连接成功");
}
}

求助高手帮我解决java中连接数据库时配置文件的问题,总是抛出空指针的...
this.driver = prop.getProperty(driver);是这行抛异常了,看异常也能找到。是你带吗的第20行。是你的prop是空对象,说明:InputStream is = this.getClass().getResourceAsStream("dbconfig.properties");Properties prop = new Properties();没有读取到配置文件,请仔细检查配置文件是否存在。如果是...

Java eclipse导出的jar怎样读写里面的properties文件
String s_config="conf\/config.properties";File file= new File(String.valueOf(ClassLoader.getSystemResource(config)));String filepaths= file.getPath(); 第二:用JarFile JarFile jarFile = new JarFile("thefile.jar"); 这个是专门用来读jar文件的 ...

怎么查看一个springboot项目的源代码在哪?
1. 项目结构:查看项目的文件结构,通常在项目的根目录下可以找到源代码文件夹(如 `src\/main\/java`),在该文件夹中可以查看项目的源代码结构。你可以使用文本编辑器或集成开发环境(IDE)打开这些文件夹,浏览项目的代码文件。2. IDE工具:使用集成开发环境(IDE)打开项目,如 IntelliJ IDEA、Eclipse ...

[高分]java方面的问题:请教高手db.properties连接池的用法
我在网上下了个JSP仿动网论坛在classes目录下有个db.properties连接池文件里面的代码如下:drivers=org.gjt.mm.mysql.Driverlogfile=E:\\\\Apache\\\\htdocs\\\\acai\\\\log.txtmysql.url=jdb... 我在网上下了个JSP仿动网论坛 在classes目录下有个db.properties连接池文件里面的代码如下:drivers=org.gjt.mm.mysql.Driverl...

ibator 生成代码给数据库添加一条记录 数据库默认值怎么添加
代码注释在org.apache.ibatis.ibator.internal这个package下的DefaultCommentGenerator.java中,可以把英文的注释改成中文的,但是sqlmap中的注释不能直接改中文,因为sqlmap.xml文件时utf-8编码的,直接写入中文注释会出现乱码的情况。 在org.apache.ibatis.ibator.config这个package下的MergeConstants.java中包含有代码注解中的...

谁能给我详细的解释一下JNDI,JTA,JMS都是什么啊?
要使用JTA事务,必须使用XADataSource来产生数据库连接,产生的连接为一个XA连接。XA连接(javax.sql.XAConnection)和非XA(java.sql.Connection)连接的区别在于:XA可以参与JTA的事务,而且不支持自动提交。 Note:Oracle, Sybase, DB2, SQL Server等大型数据库才支持XA, 支持分布事务。 My SQL 连本地都支持不好,更...

相似回答