今天准备做个JSF + Spring + JPA的整合,用Tomcat作服务器,用JPA通常来说都是用数据源的,于是有了此篇文章
1.在Tomcat要目录/conf/context.xml中添加数据源配置
- <Resource name="jdbc/jsj" auth="Container" type="javax.sql.DataSource"
- maxActive="100" maxIdle="30" maxWait="1000"
- username="root" password="root" url="jdbc:mysql://127.0.0.1:3306/jsf"
- driverClassName="com.mysql.jdbc.Driver" />
<Resource name="jdbc/jsj" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="1000" username="root" password="root" url="jdbc:mysql://127.0.0.1:3306/jsf" driverClassName="com.mysql.jdbc.Driver" />
属性 | 说明 |
name | 指定Resource的JNDI名字 |
auth | 指定Resource的Manager,它有两个可选值:Container和Application。Container表示由窗口来创建Resource,Application表示由Web应用来创建和管理Resource |
type | 指Resource所属的Java类名 |
maxActive | 指数据库连接池中处于活动状态的数据库连接的最大数目,取值为0表示不受限制 |
maxIdle | 指数据库连接池中处于空闲状态的数据库连接的最大数目,取值为0,表示不受限制 |
maxWait | 指数据库连接池中处于空闲状态的最长时间(以毫秒为单位),超过这一时间将抛出异常。取值为-1,表示可以无限制时间 |
username | 指定连接数据库的用户名 |
password | 指定连接数据库的密码 |
driverClassName | 指定连接数据库的JDBC驱动程序 |
url | 指定连接数据库的url |
2.在项目的web.xml中添加数据源
- <resource-ref>
- <description>datasource</description>
- <res-ref-name>jdbc/jsj</res-ref-name>
- <res-type>javax.sql.DataSource</res-type>
- <res-auth>Container</res-auth>
- </resource-ref>
<resource-ref> <description>datasource</description> <res-ref-name>jdbc/jsj</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref>
属性 | 说明 |
description | 对所引用资源的说明 |
res-ref-name | 指定所引用资源的JNDI名称,与<Resource>中的name属性一致 |
res-type | 指定所引用资源的类名字,与<Resource>中的type属性一致 |
res-auth | 指定Resource的Manager,与<Resource>元素中的auth属性对应 |
3.添加数据库驱动文件
把JDBC驱动程序复制到Tomcat根目录/common/lib下
4.JSP中调用数据源