java 获取c3p0配置文件中所有 named-config的name

java 获取c3p0配置文件中所有 named-config的name,第1张

<c3p0-config>

<default-config>

<property name="initialPoolSize">10</property>

<property name="maxPoolSize">30</property>

<property name="driverClass">commysqljdbcDriver</property>

<property name="jdbcUrl">jdbc:mysql://localhost:3306/day14</property>

<property name="user">root</property>

<property name="password">root</property>

</default-config>

<named-config name="itcast">

<property name="initialPoolSize">10</property>

<property name="maxPoolSize">30</property>

<property name="driverClass">commysqljdbcDriver</property>

<property name="jdbcUrl">jdbc:mysql://localhost:3306/day14</property>

<property name="user">root</property>

<property name="password">root</property>

</named-config>

</c3p0-config>

这是c3p0的配置文件,其中上面那个config是默认的,下面的是你自己配置的,c3p0有两种创建方式,第一是:无参的,直接new,然后set它的四要素,如:setDriverClass(),setJdbcUrl()等;第二种就是你说的,它的参数就是你配置文件中起的名字,如要用到下面那个,就new ComboPooledDataSource(“itcast”);这种方式下完全不需要你自己读取配置文件。

希望对你有帮助。

(1)、requestgetRealPath("/");//不推荐使用获取工程的根路径

(2)、requestgetRealPath(requestgetRequestURI());//获取jsp的路径,这个方法比较好用,可以直接在servlet和jsp中使用

(3)、requestgetSession()getServletContext()getRealPath("/");//获取工程的根路径,这个方法比较好用,可以直接在servlet和jsp中使用

(4)、 thisgetClass()getClassLoader()getResource("")getPath();//获取工程classes 下的路径,这个方法可以在任意jsp,servlet,java文件中使用,因为不管是jsp,servlet其实都是java程序,都是一个 class。所以它应该是一个通用的方法。

0、关于绝对路径和相对路径

1基本概念的理解绝对路径:绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,(URL和物理路径)例 如:C:xyz esttxt 代表了testtxt文件的绝对路径。>

读取配置文件 , xxxproperties放在webroot/WEB-INF/classes/目录下

首先将配置文件转换成InputStream,有两种方式,原理一样,都是通过类加载器得到资源:

(1)InputStream inputStream = ThreadcurrentThread()getContextClassLoader()getResourceAsStream("xxproperties");

(2) InputStream inputStream =

thisgetClass() getClassLoader()getResourceAsStream( "xxproperties" );

调用对象的getClass()方法是获得对象当前的类类型,这部分数据存在方法区中,

而后在类类型上调用 getClassLoader()方法是得到当前类型的类加载器,我们知道在Java中所有的类都是通过加载器加载到虚拟机中的,而且类加载器之间存在父 子关系,就是子知道父,父不知道子,这样不同的子加载的类型之间是无法访问的(虽然它们都被放在方法区中),所以在这里通过当前类的加载器来加载资源也就 是保证是和类类型同一个加载器加载的。

最后调用了类加载器的getResourceAsStream()方法来加载资源。

(3) 然后加载配置文件,读取属性值

Properties prop = new Properties();

propload(input);

String value = propgetProperty("PropertyName");

inputclose();

这个问题有两种办法:

第一种办法:如楼上所说的那样也可以,就是native2ascii -reverse -encoding gb2312 userproperties ActionName_zh_CNproperties这样以后,你打开ActionName_zh_CNproperties的内容,再将ActionName_zh_CNproperties文件这样置:native2ascii ActionName_zh_CNproperties userChangeproperties 然后你的程序读userChangeproperties的内容就可以。

第二种办法是:

如你代码里写的,你可以在String username=propertygetProperty("username");之后,添加JAVA代码页可以将乱码转为中文的。用如下语句就可以了,resultName=new String(usernamegetBytes("ISO-8859-1"),"gbk"); 然后再用resultName就可以了,不过这样的话你下面的String password=propertygetProperty("password");

都慢慢的通过上面的java代码去转。

不知道你对反射熟悉不?如果熟悉的话可以通过反射机制去做第二种办法的转码就方便多了!

不要用userdir,这个是根据你的运行环境改变的。

我也做过很多有upload的项目,都是用property文件定义一个绝对路径去存放上传的文件的。服务器端没有必要使用相对路径。

客户端的东西都使用相对路径,因为对于客户端来说,绝对路径是服务器的绝对路径,客户端是不能访问的。

所以,不知道你为什么要在服务器端使用相对路径,对于web开发来说,是没有意义的。

用eclipse下找不到Property File是需要建立然后保存到对应路径的。

点击new-file

d出如下图所示对话框,选择好文件存放路径和文件名即可,别的文件

以上就是关于java 获取c3p0配置文件中所有 named-config的name全部的内容,包括:java 获取c3p0配置文件中所有 named-config的name、java程序读取资源文件时路径如何指定、Java 获取配置文件路径等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9494695.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存