Java中dao包biz包中具体写什么怎么分类
发布时间:2025-05-21 12:41:28 发布人:远客网络
一、Java中dao包biz包中具体写什么怎么分类
dao,数据层,意思很清楚,我只做数据库操作,每个dao只针对一张表操作,我不做任何业务
biz,业务层,我只做某方面的业务处理,如果需要数据库工作,联系下数据部门(dao)协助我,业务层不会出现数据操作代码
你说的connection, SQL增删改查方法这些一定是数据层的
哪个是继承接口?你说的是实现接口吧
指的是把需要的方法抽象成接口类,并实现它
boolean isUserExists(Users users);
public class UserBizImpl implements UserBiz{
public UserBizImpl(final UserDao dao){
*@see biz.UserBiz#addUser(entity.Users)
public long addUser(final Users users){
*@see biz.UserBiz#getUsersById(long)
public Users getUsersById(final long id){
*@see biz.UserBiz#isUserExists(entity.Users)
public boolean isUserExists(final Users users){
if(!ObjectUtils.isEmpty(dao.getUsersByName(users
*@see biz.UserBiz#login(entity.Users)
public Users login(final Users users){
final Users users2= dao.getUsersByName(users.getUserName());
if(ObjectUtils.isEmpty(users2)){
if(users2.getUserPassword().equals(users.getUserPassword())){
Users getUsersByName(String name);
List<Users> search(Users condition);
//dao实现就不给了,因为使用hibernate实现
二、php和java哪个好
现在市场上的电子商务软件基本上可归结为两大阵营,即PHP阵营和JAVA阵营。但对接触电子商务不久的用户来说,看到的往往只是它们的表相,只是明显的价格差异,却很难看出它们之间的实际差异。其实, PHP+ MYSQL不值钱不仅仅局限于电子商务软件,而是整体上PHP+ MYSQL开发的软件都不如JAVA开发的软件值钱。为什么PHP+ MYSQL的电子商务为什么不值钱呢?首先得明白PHP和JAVA之间的差异才行。
分层是将系统进行有效组织的方式,分而治之的思想是计算机领域中非常重要的思想。在好的分层思想引导下,便能实现“高内聚、低耦合”,也能将具体的问题割裂开来,易于控制、易于延展,更易于分配资源。PHP只能实现简单的分布式两层或三层的架构,而JAVA在这方面就十分强大,可以实现多层的网络架构。运用MVC的设计模式,可使电子商务软件具有更加高效、合理的系统架构。技术架构的落后,使运用PHP编写的电子商务软件先天不足,而后天又无法补足其先天上的劣势。使得系统在可拓展性、需求应变性上与JAVA编写的电子商务软件系统的差距越来越大。架构的差距,注定了PHP做的电子商务充其量是个小家碧玉,始终无法和JAVA这种大家闺秀同台竞技。
PHP可编译成具有与许多数据库相连接的函数。将自己编写外围的函数去间接存取数据库。通过这样的途径当更换使用的数据库时,可以轻松地修改编码以适应这样的变化。但PHP提供的数据库接口支持彼此不统一,比如对Oracle,MySQL,SQL2000的接口,彼此都不一样。由于PHP对于不同的数据库采用不同的数据库访问接口,所以数据库访问代码的通用性不强。
在JAVA的面前,PHP丢掉了很多的优势。在代码的安全性上尤为突出。PHP的开发程序在别人拿到代码后,可以很容易的进行修改。而JAVA开发的程序由于无法看到完整的源代码,只能看到一些编译好的类文件.class,所以安全性较高。加之系统架构的优势,在安全性上PHP和JAVA是相去甚远。如果非要将PHP和JAVA在安全性上做个比较的话,同一个小偷光顾PHP那是随便拿来随便改,想拿什么拿什么,拿的高兴还能大笔一辉某某到此一游。而光顾JAVA的时候,便会发现警察把守,内设自动报警装置,即便突破重重阻扰后进入居室。那值钱的东西都放在加密后的保险柜中,只能望洋兴叹、铩羽而归。
从整体来说,PHP适用于中小型系统,而JAVA适用于大型系统。PHP能够将单一的事件做好,但却不适合完成集成度较高的多项并发事件。为什么说PHP适合中小型系统而不适合做大系统呢?
首先,PHP缺乏多层结构支持。而对于大型的系统负荷站点,只能采用分布计算。将数据库、应用逻辑层和表示逻辑层彼此分开,并将同层的根据流量分开,组成二维数组。而PHP恰恰缺乏这种支持。
其次,PHP提供的数据库接口不统一,要将多个不同的数据库数据统一需要花费很大的力气。而JAVA则没有这种缺陷,可通过SUN JAVA的JAVA Class和EJB获得规模支持,通过EJB/CORBA以及众多厂商的Application Server获得结构支持。如ProBIZ的Merchant one电子商务软件产品系列。
如果将PHP比作将才,具备独挡一方的能力。那么JAVA便是帅才,具有较好的前瞻性和拓展性,整体布局和协同能力强。能够指挥千军万马,最后逐鹿中原。
三、如何运用Java组件itext生成pdf
首先从iText的官网下载这个开源的小组件。
这里笔者使用的是Java版itext-5.2.1。
将itext-5.2.1.zip压缩包解压缩后得到7个文件:itextpdf-5.2.1.jar(核心组件)、itextpdf-5.2.1-javadoc.jar(API文档)、itextpdf-5.2.1-sources.jar(源代码)、itext-xtra-5.2.1.jar、itext-xtra-5.2.1-javadoc.jar、itext-xtra-5.2.1-sources.jar
使用5步即可生成一个简单的PDF文档。
2 Document _document= new Document();
3// 2.创建书写器,通过书写器将文档写入磁盘
4 PdfWriter _pdfWriter= PdfWriter.getInstance(_document, new FileOutputStream("生成文件的路径"));
8 _document.add(new Paragraph("Hi"));
OK,搞定,不出问题的话就会在你指定的路径中生成一个PDF文档,内容是纯文本的“Hi”。
可是这样并不能完全满足我们的需求,因为通常我们要生成的PDF文件不一定是纯文本格式的,比如我现在要实现打印销售单的功能,那么最起码需要绘制表格才行,怎么办呢?且跟笔者继续向下研究。
在iText中,有专门的表格类,即PdfPTable类。笔者做了一个简单的表格示例,请先看代码:
1 OutTradeList _otl= this.getOtlBiz().findOutTradeListById(this.getOtlid());
2 String _fileName= _otl.getOtlId()+".pdf";
5 BaseFont _baseFont= BaseFont.createFont("STSongStd-Light","UniGB-UCS2-H", true);
7 Document _document= new Document(PageSize.A4);
9 HttpServletResponse response= ServletActionContext.getResponse();
10 response.setContentType("application/pdf; charset=ISO-8859-1");
11 response.setHeader("Content-Disposition","inline; filename="+ new String(_fileName.getBytes(),"iso8859-1"));
13// 2.创建书写器,通过书写器将文档写入磁盘
14 PdfWriter _pdfWriter= null;
16 _pdfWriter= PdfWriter.getInstance(_document, response.getOutputStream());
18 this.setMessage("单据生成失败,请检查服务器目录权限配置是否正确");
20 System.out.println("2.挂了");
25 this.setMessage("单据生成失败,请检查服务器目录权限配置是否正确");
26 System.out.println("3.挂了");
35 PdfPTable _table= new PdfPTable(4);
38 _table.addCell(new Paragraph("单据号", new Font(_baseFont)));
39 _cell= new PdfPCell(new Paragraph(_otl.getOtlId()));
43 _table.addCell(new Paragraph("客户名称", new Font(_baseFont)));
44 _cell= new PdfPCell(new Paragraph(_otl.getClients().getName(), new Font(_baseFont)));
48 _table.addCell(new Paragraph("销售日期", new Font(_baseFont)));
49 _cell= new PdfPCell(new Paragraph(_otl.getOutDate().toString()));
55 PdfPTable _tabGoods= new PdfPTable(7);
57 _tabGoods.setHeaderRows(1);
58 _tabGoods.addCell(new Paragraph("序号", new Font(_baseFont)));
59 _tabGoods.addCell(new Paragraph("商品名称", new Font(_baseFont)));
60 _tabGoods.addCell(new Paragraph("自定义码", new Font(_baseFont)));
61 _tabGoods.addCell(new Paragraph("规格", new Font(_baseFont)));
62 _tabGoods.addCell(new Paragraph("数量", new Font(_baseFont)));
63 _tabGoods.addCell(new Paragraph("单价", new Font(_baseFont)));
64 _tabGoods.addCell(new Paragraph("小计", new Font(_baseFont)));
65 Object[] _outTrades= _otl.getOutTrades().toArray();
66//将商品销售详细信息加入表格
67 for(int i= 0; i< _outTrades.length;){
68 if((_outTrades[i]!= null)&&(_outTrades[i] instanceof OutTrade)){
69 OutTrade _ot=(OutTrade) _outTrades[i];
70 Goods _goods= _ot.getGoods();
71 _tabGoods.addCell(String.valueOf((++i)));
72 _tabGoods.addCell(new Paragraph(_goods.getName(), new Font(_baseFont)));
73 _tabGoods.addCell(_goods.getUserCode());
74 _tabGoods.addCell(_goods.getEtalon());
75 _tabGoods.addCell(String.valueOf(_ot.getNum()));
76 _tabGoods.addCell(String.valueOf(_ot.getPrice()));
77 _tabGoods.addCell(String.valueOf((_ot.getNum()* _ot.getPrice())));
80 _cell.addElement(_tabGoods);
83 _table.addCell(new Paragraph("总计", new Font(_baseFont)));
84 _cell= new PdfPCell(new Paragraph(_otl.getAllPrice().toString()));
88 _table.addCell(new Paragraph("操作员", new Font(_baseFont)));
89 _cell= new PdfPCell(new Paragraph(_otl.getProcure()));
93// 5.向文档中添加内容,将表格加入文档中
98 System.out.println(_fileName);
99 this.setPdfFilePath(_fileName);
100 System.out.println("3.搞定");
以上代码是写在 Struts2的 Action中的,当用户发送了请求之后直接将生成的PDF文件用输出流写入到客户端,浏览器收到服务器的响应之后就会询问用户打开方式。
当然,我们也可以将文件写入磁盘等等。