仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1103|回复: 19
打印 上一主题 下一主题

[学习教程] JAVA编程:数据库会见复杂完成---edainfo-model(...

[复制链接]
不帅 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:38:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
先说优点,首先和C,C++这些语言比起来,java很简单,去掉指针的java,非常好理解,自动垃圾回收机制也很好,自从JDK1.5推出以后,性能上又有了很大提高。model|会见|数据|数据库上面就正式来说一下开辟步骤:
起首,在Tomcat5.X下建一个jdbc/edainfo的数据源,数据库能够是oracle、sqlserver、mysql。表的布局以下:
CREATETABLEexample(
idvarchar(13)NOTNULL,
namevarchar(50)NULL,
addressvarchar(50)NULL
)ON[PRIMARY]
个中,id为主键。
datasource.xml内容以下:
<?xmlversion="1.0"encoding="gb2312"?>
<database>
<modelname="exampleModel">
<tablename>example</tablename>
<columns>
<columntype="0"name="id"tabColumn="id"/>
<columntype="0"name="name"tabColumn="name"/>
<columntype="0"name="address"tabColumn="address"/>
<columntype="2"name="pageNum"tabColumn="pageNum"/>
<columntype="2"name="operation"tabColumn="operation"/>
</columns>
<relations>
</relations>
<pktabColumn="id"/>
<pages>
<pagename="fore"size="20"viewPage="5"/>
</pages>
</model>
</database>
init-config.xml后面已先容过,这里就不具体先容了。
将以上两个文件都安排到WEB-INF目次下。
在web.xml中,创建一个net.edainfo.filter.SetCharacterEncodingFilter的过滤器。
创建一个ExampleModel.java,以下所示:
packagenet.edainfo.example;
importjava.util.Map;
importnet.edainfo.db.DBModel;
importnet.edainfo.db.ModelException;
importnet.edainfo.util.format.Encode;
importnet.edainfo.util.format.StringProcessor;
publicclassExampleModelextendsDBModel{
publicExampleModel(MapdataBase)throwsModelException{
super("exampleModel",dataBase);
}
publicvoidsetId(Stringid)throwsModelException{
set("id",id);
}
publicStringgetId()throwsModelException{
returngetString("id");
}
publicvoidsetName(Stringname)throwsModelException{
set("name",name);
}
publicStringgetName()throwsModelException{
returngetString("name");
}

publicvoidsetAddress(Stringaddress)throwsModelException{
set("address",address);
}
publicStringgetAddress()throwsModelException{
returngetString("address");
}
}
创建一个非常类ExampleException.java:
packagenet.edainfo.example;
importnet.edainfo.exception.BaseException;
publicclassExampleExceptionextendsBaseException{
staticpublicStringcreateFailed="exception.createFailed";
staticpublicStringretrieveFailed="exception.retrieveFailed";
staticpublicStringupdateFailed="exception.updateFailed";
staticpublicStringdeleteFailed="exception.deleteFailed";
staticpublicString[]exampleArgs={"edainfo.example"};
}
再创建一个action,ExampleAction.java:
packagenet.edainfo.example;
importjava.util.ArrayList;
importjava.util.Map;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
importnet.edainfo.db.DAO;
importnet.edainfo.util.ActionBase;
importnet.edainfo.util.EdaGlobals;
importnet.edainfo.util.FormParameter;
importnet.edainfo.util.page.PageList;
importorg.apache.struts.action.ActionForm;
importorg.apache.struts.action.ActionForward;
importorg.apache.struts.action.ActionMapping;
importorg.apache.struts.validator.DynaValidatorForm;
/**
*@authorslf
*
*TODOTochangethetemplateforthisgeneratedtypecommentgotoWindow-
*Preferences-Java-CodeStyle-CodeTemplates
*/
publicclassExampleActionextendsActionBase{
publicActionForwardexecuteAction(ActionMappingmapping,ActionFormform,
HttpServletRequestrequest,HttpServletResponseresponse,Mapparams)
throwsException{
DynaValidatorFormtheForm=(DynaValidatorForm)form;
Stringnext="";
conn=this.getConnection();
Stringoperation=(String)theForm.get("operation");

DAOdao=newDAO(conn,params.get(EdaGlobals.DATABASE_TYPE_KEY)
+"");
if(operation==null||operation.equals(""))
operation="list";
if(operation.equals("list")){
ExampleModelmodel=newExampleModel((Map)params
.get(EdaGlobals.DATA_BASE_KEY));
StringpageNum=(String)theForm.get("pageNum");
if(pageNum==null||pageNum.equals("")){
pageNum="1";
}
theForm.set("pageNum",pageNum);
intpageSize=model.getPageSize("fore");
intviewPage=model.getViewPage("fore");

PageListlists=dao.select(model,"",newArrayList(),"",Integer
.parseInt(pageNum),pageSize,viewPage,dao.DISTINCT_OFF);
Mapparms=FormParameter.setListPage(theForm,lists,"example",
request);
request.setAttribute("parms",parms);
next="list";
}elseif(operation.equals("add")){
ExampleModelmodel=newExampleModel((Map)params
.get(EdaGlobals.DATA_BASE_KEY));
model=(ExampleModel)FormParameter.getParameter(model,theForm);
model.setId(dao.generateId());
dao.create(model);
next="add";
}elseif(operation.equals("addform")){
next="addform";
theForm.set("operation","add");
}
returnmapping.findForward(next);
}
}
然后是创建jsp页面,这里有两个页面,一个是扫瞄页,一个是表单页;
扫瞄页,listExample.jsp:
<%@pagecontentType="text/html;charset=UTF-8"%>
<%@tagliburi="/WEB-INF/struts-bean.tld"prefix="bean"%>
<%@tagliburi="/WEB-INF/struts-html.tld"prefix="html"%>
<%@tagliburi="/WEB-INF/struts-logic.tld"prefix="logic"%>
<%
StringlinkPage=(String)request.getAttribute("linkPage");
%>
<html>
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=gb2312">
<title><bean:messagekey="edainfo.example"/></title>
</head>
<body>
<tablewidth="75%"border="0"align="center"cellpadding="3"cellspacing="1">
<tr>
<tdcolspan="2"><html:linkaction="example?operation=addform"><bean:messagekey="example.add"/></html:link></td>
</tr>
<tr>
<tdwidth="47%"><bean:messagekey="example.name"/></td>
<tdwidth="53%"><bean:messagekey="example.address"/></td>
</tr>
<logic:iteratename="lists"id="list">
<tr>
<td><bean:writename="list"property="name"/></td>
<td><bean:writename="list"property="address"/></td>
</tr>
</logic:iterate>
<tralign="center">
<tdcolspan="2">
<%@includefile="/turnPage.jsp"%>
</td>
</tr>
</table>
</body>
</html>
表单页,exampleForm.jsp:
<%@pagecontentType="text/html;charset=UTF-8"%>
<%@tagliburi="/WEB-INF/struts-bean.tld"prefix="bean"%>
<%@tagliburi="/WEB-INF/struts-html.tld"prefix="html"%>
<html>
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=gb2312">
<title><bean:messagekey="edainfo.example"/></title>
</head>
<body>
<logic:messagesPresent>
<ul>
<html:messagesid="error">
<li><bean:writename="error"/></li>
</html:messages>
</ul>
</logic:messagesPresent>
<html:formaction="example">
<tablewidth="75%"border="0"align="center"cellpadding="3"cellspacing="1">
<tr>
<tdwidth="26%"><bean:messagekey="example.name"/></td>
<tdwidth="74%"><html:textproperty="name"size="20"/></td>
</tr>
<tr>
<td><bean:messagekey="example.address"/></td>
<td><html:textproperty="address"size="20"/></td>
</tr>
<tralign="center">
<tdcolspan="2"><html:submitproperty="submit"styleClass="buttonface">
<bean:messagekey="button.save"/>
</html:submit></td>
</tr>
</table>
<html:hiddenproperty="operation"/>
</html:form>
</body>
</html>
以上两个页面放到页面根目次下,请记得将请记得将turnPage.jsp也拷贝过去。
然后,我们在struts-config.xml中设置我们的action:
<?xmlversion="1.0"encoding="ISO-8859-1"?>
<!DOCTYPEstruts-configPUBLIC
"-//ApacheSoftwareFoundation//DTDStrutsConfiguration1.1//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
<struts-config>
<!--==========FormBeanDefinitions===================================-->
<form-beans>
<form-beanname="exampleForm"
type="org.apache.struts.validator.DynaValidatorForm">
<form-propertyname="name"type="java.lang.String"/>
<form-propertyname="address"type="java.lang.String"/>
<form-propertyname="operation"type="java.lang.String"/>
<form-propertyname="pageNum"type="java.lang.String"/>
</form-bean>
</form-beans>
<!--globalexceptiondefinitions-->
<global-exceptions>
<exceptionhandler="net.edainfo.exception.BaseExceptionHandler"
key="exception.unawareError"
path="/error.jsp"
scope="request"
type="java.lang.Exception"/>
</global-exceptions>
<!--==========GlobalForwardDefinitions==============================-->
<global-forwardstype="org.apache.struts.action.ActionForward">
</global-forwards>
<!--==========ActionMappingDefinitions==============================-->
<action-mappings>
<actionpath="/example"
type="net.edainfo.example.ExampleAction"
name="exampleForm"
validate="false"
scope="request">
<forwardname="list"path="/listExample.jsp"/>
<forwardname="add"path="/example.do"redirect="true"/>
<forwardname="addform"path="/exampleForm.jsp"/>
</action>
</action-mappings>
<!--==========MessageResourcesDefinitions===========================-->
<message-resources
null="false"
parameter="ApplicationResources"/>
<!--==========PlugInsConfiguration==================================-->

<!--
Addmultiplevalidatorresourcefilesbysettingthepathnamesproperty
withacommadelimittedlistofresourcefilestoload.
-->
<plug-inclassName="org.apache.struts.validator.ValidatorPlugIn">
<set-propertyproperty="pathnames"value="/WEB-INF/validator-rules.xml,
/WEB-INF/validation.xml"/>
</plug-in>

</struts-config>
在WEB-INF/lib下记得要放以下包:struts1.1及它的相干包、jfreechart及其相干包、edabase-model.jar、log4j-1.2.8.jar、jdom.jar、xercesImpl.jar、xmlParserAPIs.jar。
如今已完成,启动tomcat,在扫瞄器中敲如http://xxxxx/example.do,就能够看到效果了。
在这里,次要演示了edainfo-model的数据库操纵、分页及actionform中批量的猎取数据,假如你已对它产生乐趣了,请持续存眷本站的相干文章,另有更多出色的内容等着你。
上面是这个例子的完全源码下载:
edainfo-model复杂例子下载


如果你学习的是市场营销,是销售,也许参加大课堂的学习会更合适,因为你的工作能力中有个基础就是搭建自己的人脉,
老尸 该用户已被删除
沙发
发表于 2015-1-21 12:05:22 | 只看该作者
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
谁可相欹 该用户已被删除
板凳
发表于 2015-1-30 17:42:58 | 只看该作者
Java是一种计算机编程语言,拥有跨平台、面向对java
山那边是海 该用户已被删除
地板
发表于 2015-2-4 22:28:15 | 只看该作者
科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
飘飘悠悠 该用户已被删除
5#
发表于 2015-2-10 21:42:05 | 只看该作者
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
海妖 该用户已被删除
6#
发表于 2015-3-1 14:41:53 | 只看该作者
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
第二个灵魂 该用户已被删除
7#
发表于 2015-3-10 19:08:43 | 只看该作者
是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言
小魔女 该用户已被删除
8#
发表于 2015-3-17 09:10:31 | 只看该作者
是一种使用者不需花费很多时间学习的语言
不帅 该用户已被删除
9#
 楼主| 发表于 2015-3-18 15:38:32 | 只看该作者
是一种使用者不需花费很多时间学习的语言
只想知道 该用户已被删除
10#
发表于 2015-3-23 05:33:27 | 只看该作者
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
若天明 该用户已被删除
11#
发表于 2015-4-4 16:13:38 | 只看该作者
多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
12#
发表于 2015-4-5 16:02:07 | 只看该作者
是一种将安全性(Security)列为第一优先考虑的语言
莫相离 该用户已被删除
13#
发表于 2015-4-6 09:24:34 | 只看该作者
Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。
因胸联盟 该用户已被删除
14#
发表于 2015-4-6 22:12:15 | 只看该作者
Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。
小女巫 该用户已被删除
15#
发表于 2015-4-7 08:21:05 | 只看该作者
Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。
蒙在股里 该用户已被删除
16#
发表于 2015-4-7 10:08:06 | 只看该作者
Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站
简单生活 该用户已被删除
17#
发表于 2015-4-16 18:11:57 | 只看该作者
是一种为 Internet发展的计算机语言
愤怒的大鸟 该用户已被删除
18#
发表于 2015-4-24 07:14:11 | 只看该作者
应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展
冷月葬花魂 该用户已被删除
19#
发表于 2015-5-5 22:53:26 | 只看该作者
是一种为 Internet发展的计算机语言
透明 该用户已被删除
20#
发表于 2015-6-5 00:44:48 | 只看该作者
当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-5 19:08

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表