数据库
JNDI(Java Naming and Directory Interface,Java命名和目录接口)是一组在Java应用中访问命名和目录服务的API。
没有使用JNDI时我用要这样连接数据库:
03. Class.forName("com.mysql.jdbc.Driver");
04. conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/ssh");
05. ......
Connection conn=null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/ssh");
......
传统做法的缺点:
(1) 链接的数据库名称、用户名、密码、驱动字符串写在源码里,修改时要进行二次编译; 写在配置文件里容易暴露给他人。
(2) 改用其它产品的数据库时,要在源码上更改驱动名及驱动连接数据库字符串及更换数据库驱动。
(3) 随着实际使用终端的增加,原配置的连接池参数可能需要调整。
用了JNDI又是什么样子的呢.....
首先:把mysql的驱动包加到Tomcat的lib文件夹下
一、配置全局的JNDI
(1)在tomcat6.0的conf文件夹下的context.xml配置文件中的 "Context" 标签内加入如下代码
<Resource name="jndi/tomcatJNDI"
auth="Container"
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@10.165.8.65:1521:UTF8"
username="spmsadmin"
password="spmsadmin"
maxActive="20"
maxIdle="10"
maxWait="10000"/>
分的。暂时不学;
还有spring的2种方式;第一使用properties文件,第二使用tomcat;
<!--配置数据源属性文件 1
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location">
<value>/WEB-INF/sql.properties</value>
</property>
</bean>
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName">
<value>${jdbc.driver}</value>
</property>
<property name="url">
<value>${jdbc.url}</value>
</property>
<property name="username">
<value>${jdbc.user}</value>
</property>
<property name="password">
<value>${jdbc.pwd}</value>
</property>
</bean>
-->
<!--配置数据源 2-->
<bean id="dataSource"
class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="java:comp/env/jndi/tomcatJNDI"/>
</bean>