我自己做了一个练手的项目,项目已经基本完成,但是项目开始用的是jdbc配置数据源,一切都没有问题,后来我想把它改成用jndi配置数据源。下面是我改造时查了很多资料后整理的学习笔记,自己试过了没问题。仅供参考,可能每个人的情况不一样。依赖的环境:Windows,java编辑器,Tomcat,web项目(spring+mybatis+MySQL)具体操作步骤如下:
1、配置全局的jndi
在Tomcat的安装目录下的conf/目录中找到context.xml文件,打开,在里添加如下代码:
<Resource name="jndi/mysql"
auth="Container"
type="javax.sql.DataSource"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/eroly"
username="root"
password="root"
maxActive="20"
maxIdle="10"
maxWait="10000"/>
这是在配置JNDI全局数据源,当然这是针对MySQL的
注意:当使用jdbc时数据库的URL是这样写的
url="jdbc:mysql://ip:port/dbName?useUnicode=true&characterEncoding=UTF-8"
但如果使用jndi还这样写就会报错,但是URL可以写成如下形式。但大多数都是在dbName都就不写了
url="jdbc:mysql://ip:port/dbName?useUnicode=true&characterEncoding=UTF-8"
Oracle数据库是这样的,如果还想添加其他属性,可以自行查找
<Resource name="jndi/oracle"
auth="Container"
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@xxxxxxxxxxxxx:htfuat"
username="xx"
password="xx"
poolMaximumActiveConnections="20"
poolMaximumIdleConnections="10"
poolMaximumCheckoutTime="10000"/>
2、导入数据库驱动包
在Tomcat的目录下的lib/目录中添加数据库驱动的jar包,mysql的驱动包,如mysql-connector-java-5.1.18-bin.jar,网上都可以下载到,oracle的驱动包可以自己找哈,官网下载
3、在mybatis.xml(数据源配置)
将原来的jdbc配置改成如下配置:
<!-- JNDI方式配置数据源 -->
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<value>java:comp/env/jndi/mysql</value>
</property>
</bean>
注意:value中java:comp/env/是jndi规定的前缀。公司项目里用的就是weblogic没加前缀,查资料得知weblogic时好像不识别前缀,可以直接写成jndi的name。没有试过,感兴趣的可以试一下哈。
做完这些操作之后,我直接启动项目就好了,完美运行。
希望可以对你有帮助!!~_~