数据源连接数据库配置相关xml文件
学完数据源连接数据后,做个笔记,当我们的程序对数据库访问频繁时,为了提高程序运行效率,我们可以通过
数据源连接数据库,从数据库连接池中直接取得出于空闲状态的数据库连接对象,以下是相关xml文件的配置:
1、 定义数据源。
数据源是JNDI(Java Naming and Directory Interface)资源的一种,下面开始定义数据源
在对应的JavaWeb项目下的META-INF目录下创建一个context.xml文件,
以下为context.xml文件内容及各属性说明。
1 <?xml version="1.0" encoding="UTF-8"?> 2 <Context> 3 4 <!-- 定义数据源--> 5 6 <!-- 7 name:指定Resource的JNDI名字 8 auth:指定管理Resource的Manager,有两个可选值,Container表示由容器来创建和管理Resource 9 Application表示由Web应用来创建和管理Resource 10 type:指定Resource所属的Java类名 11 12 username:数据库用户名 password:连接数据库的口令 13 driverClassName:指定连接数据库的JDBC驱动器中的Driver实现类的名字 14 url:指定数据库的URL 15 16 注意:如果url中用到useSSL=true/false,则需要在所有的'&'后面加上"amp;"如下 17 --> 18 <Resource name="jdbc/BookDB" auth="Container" type="javax.sql.DataSource" 19 username="root" 20 password="Cz123" 21 driverClassName="com.mysql.jdbc.Driver" 22 url="jdbc:mysql://localhost:3306/Books?characterEncoding=utf8&useSSL=true"/> 23 24 </Context>
1、 声明JNDI资源的引用
如果Web应用访问了由Servlet容器管理的某个JNDI资源,那么必须在web.xml文件中注册中声明对这个JNDI资源的引用。在项目下的WEB-INF目录下创建web.xml文件
内容及各属性说明如下:
1 <?xml version="1.0" encoding="UTF-8"?> 2 3 <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" 4 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 5 xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee 6 http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" 7 version="3.1" 8 metadata-complete="true"> 9 10 <display-name>Tomcat Manager Application</display-name> 11 <description> 12 A scriptable management web application for the Tomcat Web Server; 13 Manager lets you view, load/unload/etc particular web applications. 14 </description> 15 16 <!-- 声明引用数据源 --> 17 <!-- 18 <res-ref-name>:指定所引用资源的JNDI名字,与定义的数据源的<Resource>元素中的name属性对应 19 <res-type>:指定所引用资源的类名字,与定义的数据源的<Resource>元素中的name属性对应 20 <res-auth>:指定管理所引用资源的Manager,与定义的数据源的<Resource>元素中的auth属性对应 21 --> 22 <resource-ref> 23 <description>DB Connection</description> 24 <res-ref-name>jdbc/BookDB</res-ref-name> 25 <res-type>javax.sql.DataSource</res-type> 26 <res-auth>Container</res-auth> 27 </resource-ref> 28 29 </web-app>
取得数据库连接:javax.naming.Context ctx = InitialContext(); //取得Context对象
//调用context对象的lookup方法,通过引用资源的name获得数据源对象
//因为笔者用的是Tomcat服务器,所有要在name前面加上java:comp/env(固定格式)
javax.sql.DataSource ds = ctx.lookup(“java:comp/env/jdbc/BookDB”);
//通过数据源,获得数据库连接对象
Connection con = ds.getConnection();
初学小白,请多指教!