|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
你希望java的IDE整合。这个是没有必要的,重要的是你理解java有多深以及怎么组织你的代码,即使没有IDE,代码照样能够编译运行的。js|会见|数据 JSP中早就有了相似.NetDataSet那样的离线数据会见了,丢弃ResultSet,拥抱Result吧!
微软的.NET平台下面的数据会见有一个特性,就是数据查询的了局,能够放在内存中,以XML格局举行形貌,不必要一向与数据库坚持在线毗连,用DataSet+DataAdapter来完成!
而在JDBC中,我们一般利用javax.sql.ResultSet类来寄存放回的数据,它的流程和性命周期以下:
利用ResultSet来前往数据库查询了局Client-->Connection-->Statement-->JDBCDriver--+DatabaseClient<--Parsing<--ResultSet<--JDBCDriver--+ConnectionlifecycleResultSetlifecycle
我们能够看到,如许会临时占用数据库毗连的资本,是一个有点不爽的成绩...
实在,在JSTL中供应了别的一种机制,让我们在前往查询了局到暗示层的时分,能够做到离线利用!它就是javax.servlet.jsp.jstl.sql.Result类!
1<%@tagliburi="http://java.sun.com/jsp/jstl/core"prefix="c"%>
2<%@pagecontentType="text/html;charset=UTF-8"%>
3<%@pageimport="java.sql.Connection"%>
4<%@pageimport="java.sql.DriverManager"%>
5<%@pageimport="java.sql.ResultSet"%>
6<%@pageimport="java.sql.SQLException"%>
7<%@pageimport="java.sql.Statement"%>
8<%@pageimport="javax.servlet.jsp.jstl.sql.Result"%>
9<%@pageimport="javax.servlet.jsp.jstl.sql.ResultSupport"%>
10<%
11//临时把这个上面的内容看做多层架构中的DAO好了,我偷懒了!
12Connectionconn=null;
13Statementstmt=null;
14ResultSetrs=null;
15StringstrDbUrl
16="jdbc:mysql://localhost/tutorial?user=tutorial&password=tutpwd";
17try{
18//入手下手与数据库作查询19Class.forName("com.mysql.jdbc.Driver").newInstance();
20conn=DriverManager.getConnection(strDbUrl);21stmt=conn.createStatement();
22StringstrSql="SELECT*FROMR_TUT_USERS";23rs=stmt.executeQuery(strSql);
24//把ResultSet转化成Result25ResultuserData=ResultSupport.toResult(rs);
26//当我们把了局放到某个Modelbean后,就能够封闭数据库毗连了.
27//为了简化,我们临时把pageContext看做ModelBean好了!
28pageContext.setAttribute("userData",userData);
29}
30catch(Exceptionex){
31//handleanyerrors
32System.out.println("SQLException:"+ex.getMessage());
33}
34finally{
35try{
36if(rs!=null){
37rs.close();
38}
39if(stmt!=null){
40stmt.close();
41}
42if(conn!=null){
43conn.close();
44}
45}
46catch(SQLExceptionex){
47System.out.println("SQLException:"+ex.getMessage());
48}
49}
50//DAO的逻辑停止
51%>
52<html>
53<head>
54<title>test</title>
55</head>
56<body>
57<!--//上面看成是暗示层吧//-->
58<c:forEachitems="${userData.rows}"var="user">
59<c:outvalue=${user.name}/>
60</c:forEach>
61</body>
62</html>
</STRONG>
用winrar打包j2ee的程序和用IDE打包应用程序是一样的。按照你的想法,你是不是也希望服务器都整合由一家公司提供呢? |
|