基于GlassFish 的 NetBeans 开发环境下 SQL 2008 数据库访问
GlassFish Server Open Source Edit, SQL2008数据库访问
开发工具及环境
NetBeans 6.9.1(目前7.0就快发布了),下载地址
Windows 2003 SP2
数据库 SQL 2008 SP1
JDBC驱动,微软JDBC3.0,下载地址
一、 安装(略)。
二、 搭建环境:
1、 复制JDBC驱动sqljdbc4.jar至GlassFish扩展库目录内。
c:/glassfish-3.0.1/glassfish/domains/domain1/lib/ext
2、 启动数据库,创建数据库mydb,创建用户名和密码mydb,开启用户mydb的权限,db_owner和public,并测试该账号正常工作,并创建一个mydb的数据表,填充一定的记录。
CREATE TABLE [dbo].[Table_1](
[id] [bigint] IDENTITY(1,1) NOT NULL,
[f1] [varchar](50) NULL,
[f2] [varchar](50) NULL,
[f3] [varchar](50) NULL,
[f4] [varchar](50) NULL
) ON [PRIMARY]
3、 NetBeans内新建一个项目,选择Java Web,再选择Web Application,填写项目名mydb和适当的路径,Server选择GlassFish Server,Java EE Version 选择 Java EE 5 的,如果选择Java EE 6,将没有默认提供 Web.xml,需要到通过新文件向导选择Web和Standard Deployment Descriptor,单击Finish创建项目完毕。
4、 NetBeans 的 Services 窗口
Database右键,选择New Connection
对话框内,Driver Name选择New Driver,再选择JDBC驱动程序文件,Name输入mydb,填写相应的Host、Port、Database等信息,scheam选择dbo
5、 回到Projects窗口,创建数据连接。
方式一:向导式创建:
(1) 创建一个 Connection Pool
项目上右键选择New File,找到GlassFish,选择JDBC Connection Pool,填写 JDBC Connection Pool Name,选择一个链接(刚才创建的),单击Next。
在Properties 内确认JDBC连接参数,并增加一个 loginTimeout,Value 为 5,单位秒,这个时间也可以自己根据情况设置,单击 Next。
一些连接池参数,如果性能需要提高,可修改连接池大小和连接数,并单击Finsh。
(2) 项目上右键选择New File,找到GlassFish,选择JDBC Resource,并选择一个连接池,填写新的JNDI Name,一般jdbc/XXX,单击Finish。
设置结束后可在 glassfish-resources.xml 中看到设置信息。
方式二:手动创建:
登陆到GlassFish控制台
找到资源,进入JDBC、连接池,创建一个mydb的连接池
再找到资源,进入JDBC、JDBC资源,创建一个jdbc/mydb的资源,并指向mydb
如果存在 JavaBean 操作,还需要添加一个Web.xml文件(否则只用JSTL则不需要添加如下内容),项目新建,选择NewFile,选择Web,再选择Standard Deployment Descriptor (web.xml),创建了该文件后,增加以下内容。
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/XXXX</res-ref-name>
<res-type>javax.sql.ConnectionPoolDataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
红色XXXX修改为JDBC Resource 指定的JNDI Name "jdbc/XXX",至此,配置完成。
三、 代码测试:创建index.jsp,内容如下
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>
<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<sql:query var="result" dataSource="jdbc/mydb">
SELECT * FROM Table_1
</sql:query>
<table border="1">
<!-- column headers -->
<tr>
<c:forEach var="columnName" items="${result.columnNames}">
<th><c:out value="${columnName}"/></th>
</c:forEach>
</tr>
<!-- column data -->
<c:forEach var="row" items="${result.rowsByIndex}">
<tr>
<c:forEach var="column" items="${row}">
<td><c:out value="${column}"/></td>
</c:forEach>
</tr>
</c:forEach>
</table>
</body>
</html>
四、 测试结果
id f1 f2 f3 f4
1 aaa eee qqq
2 bbb fff www
3 ccc www eee
4 ddd qqq rrr