1. 准备工作
a. 启动glassfish服务器。浏览器中输入http://localhost:4848/,登陆到管理页面。
用户名:admin,密码adminadmin
b. 配置过程:
在 "资源->jdbc->连接池" 页面中点[新建]按钮
c. 标识连接池的常规设置 常规设置 名称: (必填的) (注:自己起名称)
mysql_database_userPool
资源类型:(注:下拉列表中选择)
javax.sql.DataSource"
数据库供应商:
MySql
d. 标识连接池的常规设置。
名称:mysql_database_userPool
资源类型:javax.sql.DataSource
数据库供应商:MySQL
数据源类名称: 必填的 com.mysql.jdbc.jdbc2.optional.MysqlDataSource
实现 DataSource 和/或 XADataSource API 的特定于供应商的类名
描述:(对该连接池作用的描述)
e. 编辑属性表格
User blog
Password 5566
serverName localhost
databaseName blog
portNumber 3306
driverClass com.mysql.jdbc.Driver
URL jdbc:mysql://localhost:3306/blog?autoReconnect=true
f. 按ping 按钮后,如果提示ping成功,那就ok了。
如果提示 配置数据库连接池时提示类错误: 类名错误或没有为以下类设置类路径:
com.mysql.jdbc.jdbc2.optional.MysqlDataSource
这是由于服务器找不到对应的数据库驱动类。
注意:将该类库加载到nb中时,只是针对编译时此类起作用,但是GlassFish并不能从nb项目中查询类库。
g. 然后再根据这个数据连接池,新建一个JDBC连接,给这个连接一个名字如xiangmustudent,
就可以在项目中使用了。
注意下面路径下的domain.xml文件
C:\Program Files\sges-v3\glassfish\domains\domain1\config
2. 准备完成后。开始引用数据库资源
两种方法:
a. 自动添加。
右键插入代码。使用数据库资源。根据提示完成引用。
b. 手动添加。
sun-web.xml中
<resource-ref>
<res-ref-name>jdbc/MySqlDB</res-ref-name>
<jndi-name>xiangmustudent</jndi-name>
</resource-ref>
向web.xml加入下面的内容
<resource-ref>
<description>DBPool Connection</description>
<res-ref-name>jdbc/MySqlDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
然后就可以通过数据源找到数据库连接了。
注:这是先建立连接池再引用。也可以直接在项目中先引用,自动生成连接池。
在服务器资源sum-resource.xml中会有自动生成的连接池信息。
<jdbc-resource enabled="true" jndi-name="xiangmustudent" object-type="user"
pool-name="mysql_students_studentsPool"/>
<jdbc-connection-pool allow-non-component-callers="false" associate-with-thread="false" connection-creation-retry-attempts="0" connection-creation-retry-interval-in-seconds="10" connection-leak-reclaim="false" connection-leak-timeout-in-seconds="0" connection-validation-method="auto-commit" datasource-classname="com.mysql.jdbc.jdbc2.optional.MysqlDataSource" fail-all-connections="false" idle-timeout-in-seconds="300" is-connection-validation-required="false" is-isolation-level-guaranteed="true" lazy-connection-association="false" lazy-connection-enlistment="false" match-connections="false" max-connection-usage-count="0" max-pool-size="32" max-wait-time-in-millis="60000" name="mysql_students_studentsPool" non-transactional-connections="false" pool-resize-quantity="2" res-type="javax.sql.DataSource" statement-timeout-in-seconds="-1" steady-pool-size="8" validate-atmost-once-period-in-seconds="0" wrap-jdbc-objects="false">
<property name="User" value="students"/>
<property name="Password" value="5566"/>
<property name="serverName" value="localhost"/>
<property name="portNumber" value="3306"/>
<property name="databaseName" value="students"/>
<property name="URL" value="jdbc:mysql://localhost:3306/students?autoReconnect=true"/>
<property name="driverClass" value="com.mysql.jdbc.Driver"/>
</jdbc-connection-pool>