仓酷云

标题: JAVA网站制作之实战JSP进阶编程之二:最复杂的DAO [打印本页]

作者: 莫相离    时间: 2015-1-18 11:07
标题: JAVA网站制作之实战JSP进阶编程之二:最复杂的DAO
java比较简单,没有C++的烦琐,但学习时最好有C++为基础.与JSP和SQL起应用,功能强大.  我们的第一个例子是简化的DAO体例,次要是在编程中引进了oop观点。
  此次,我们将DAO补齐,但仍旧坚持最复杂的情势,以便初学者进修。
  复杂的DAO形式组成:
  1interface
  2.Factory
  3Implements
  4.caller
  第一个例子中的主程序NewsDAO.java代码没有修改,只是改了个名字,
  成为implements.
packagenews;
importjava.sql.*;
publicclassNewsDAOMySQLimplementsNewsDAO
{
Connectionconn=null;
Statementstmt=null;
ResultSetrs=null;
Stringurl="jdbc:mysql://localhost:3306/joke?user=root";
publicNewsDAOMySQL()
{
try{
Class.forName("com.mysql.jdbc.Driver");
}
catch(java.lang.ClassNotFoundExceptione){
System.err.println("joke():"+e.getMessage());
}
}
publicNewsgetNewsByPrimaryKey(intnewsid)throwsSQLException
{
Connectionconn=null;
Statementstmt;
ResultSetrs;
Newsnews=null;
Stringsql="selectnewsid,title,contentfromnews2"+
"wherenewsid="+newsid+"";
conn=getConnection();
stmt=conn.createStatement();
rs=stmt.executeQuery(sql);
if(rs.next())
{
news=newNews(rs.getInt(1),rs.getString(2),rs.getString(3));
}
rs.close();
stmt.close();
conn.close();
returnnews;
}
privateConnectiongetConnection()throwsSQLException
{
Connectionconn=null;
conn=DriverManager.getConnection(url);
returnconn;
}
}  除第一句由
  publicclassNewsDAO酿成了
  publicclassNewsDAOMySQLimplementsNewsDAO
  机关办法称号由NewsDAO()酿成NewsDAOMySQL(),这个程序与第一个例子并没有区分。
  第二个程序是interface,十分复杂,由于我们只完成了一个办法,以是这儿也只要一个办法的声名,人人能够很简单地本人补上。
packagenews;
importjava.sql.SQLException;
publicinterfaceNewsDAO{
publicNewsgetNewsByPrimaryKey(intnewsid)throwsSQLException;
}  第三个程序是Factory.
  我们的情况对照复杂,没有利用jndi,
packagenews;
publicclassNewsDAOFactory{
publicstaticNewsDAOgetDAO()throwsException{
NewsDAOnewsDao=null;
StringclassName="news.NewsDAOMySQL";
try{
newsDao=(NewsDAO)Class.forName(className).newInstance();
}
catch(Exceptionse){
}
returnnewsDao;
}
}  第四,挪用的jsp程序:
<%@pagecontentType="text/html;charset=gb2312"%>
<%@pageimport="news.*"%>
<%
//oldversionon2004-12-07
//NewsDAOnewsDao=newNewsDAO();
//newversionon2004-12-21
NewsDAOnewsDao=NewsDAOFactory.getDAO();
Newsnews=newsDao.getNewsByPrimaryKey(1);
if(news!=null){
out.println("TitlethruDAO:"+news.getTitle());
out.println("<br>");
out.println("Body:"+news.getContent());
}
elseout.println("Failed.");
%>  第五,本例所利用的POJO:News.java,没有任何修改,故不在此反复。
  内网观察点:同第一例子。
  更完全的例子,人人能够参考petstore的CatalogDAO.

net程序员的大部门代码都靠控件拖拽完成的,虽然java也有,但是无论从美观和速度上都没发和.net比。java程序员都是代码完成的,所以java程序员常戏称.net程序员是操作员,呵呵。
作者: 再见西城    时间: 2015-1-20 14:51
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
作者: 不帅    时间: 2015-1-29 10:46
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
作者: 小女巫    时间: 2015-2-6 00:24
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
作者: 深爱那片海    时间: 2015-2-14 15:38
你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。
作者: 精灵巫婆    时间: 2015-3-4 07:38
Java是一种计算机编程语言,拥有跨平台、面向对java
作者: 简单生活    时间: 2015-3-11 17:55
Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
作者: 小妖女    时间: 2015-3-19 05:21
你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?
作者: 只想知道    时间: 2015-3-27 08:10
Java 编程语言的风格十分接近C、C++语言。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2