utils.java是什么_关于对javaUtils封装和三层架构的笔记

1.什么是三层架构:

三层架构(3-tier architecture) 通常意义上的三层架构就是将整个业务应用划分为:界面层(User Interface layer)、业务逻辑层(Business Logic Layer)、数据访问层(Data access layer)。区分层次的目的即为了“高内聚低耦合”的思想。在软件体系架构设计中,分层式结构是最常见,也是最重要的一种结构。微软推荐的分层式结构一般分为三层,从下至上分别为:数据访问层、业务逻辑层(又或称为领域层)、表示层。

2.三层架构的优点:

1、开发人员可以只关注整个结构中的其中某一层;

2、可以很容易的用新的实现来替换原有层次的实现;

3、可以降低层与层之间的依赖;

4、有利于标准化;

5、利于各层逻辑的复用。

6、结构更加的明确

7、在后期维护的时候,极大地降低了维护成本和维护时间

3.三层架构案例分析:

5c3844217d0fcb381868a9b2a682b6a1.png

web层

1>接收数据:本案例不需要接收数据

2>用List接受查询结果(常用于收集查询结果集)

定义一个List集合productList泛型为product用于接收service.findAllProduct();的返回值。

3>传递数据

List productList =service.findAllProduct();

service层

1>传递数据

return dao.findAllCategory();

dao层

1>链接数据库QueryRunner()的有参链接

QueryRunner runner = new QueryRunner(DataSourceUtils.getDataSource());

String sql = "select * from product";

List接受查询到的数据

List productList = runner.query(sql, new BeanListHandler(product.class));

数据的回写

return productList;

web层

将查询到被回写的数据放入request域中并转发到jsp中进行显示

request.setAttribute("productList", productList);

request.getRequestDispatcher("/admin/product/list.jsp").forward(request, response);

3.关于数据的封装和回写

1>List,ListMap     Map的赋值和遍历

//1)遍历strList

List strList = new ArrayList();

strList.add("一");

strList.add("二");

strList.add("三");

strList.add("四");

request.setAttribute("strList", strList);

//2)遍历List的值

List userList = new ArrayList();

User user1= newUser();

user1.setId(1);

user1.setName("lisi");

user1.setPassword("1234");

userList.add(user1);

User user2= newUser();

user2.setId(2);

user2.setName("wangwu");

user2.setPassword("123456");

userList.add(user2);

request.setAttribute("userList", userList);

//3)遍历Map的值

Map strMap = new HashMap();

strMap.put("key1", "一");

strMap.put("key2", "二");

strMap.put("key3", "三");

strMap.put("key4", "四");

request.setAttribute("strMap", strMap);

//4)遍历Map的值

Map userMap = new HashMap();

userMap.put("key1", user1);

userMap.put("key2",user2);

request.setAttribute("userMap", userMap);

遍历(jstl)

取出strList数据

${str}

取出userList数据

${user.id}
${user.name}
${user.password}

取出strMap数据

${strMap.key}=${strMap.value}

取出userMap数据

${userMap.key }=${userMap.value.name}=${userMap.value.password}

2>Map封装数据

Map properties = request.getParameterMap();

product product = new product();

try {

//将properties中的数据封装到product对象中

BeanUtils.populate(product, properties);

} catch (IllegalAccessException | InvocationTargetException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

3>手动的封装product中自己想要的数据

product.setPimage("products/1/c_0033.jpg");

domain:product

package com.hdh.domain;

public class product {

// `pid` varchar(32) NOT NULL,

// `pname` varchar(50) DEFAULT NULL,

// `market_price` double DEFAULT NULL,

// `shop_price` double DEFAULT NULL,

// `pimage` varchar(200) DEFAULT NULL,

// `pdate` date DEFAULT NULL,

// `is_hot` int(11) DEFAULT NULL,

// `pdesc` varchar(255) DEFAULT NULL,

// `pflag` int(11) DEFAULT NULL,

// `cid` varchar(32) DEFAULT NULL,

private String pid;

private String pname;

private double market_price;

private double shop_price;

private String pimage;

private String pdate;

private int is_hot;

private String pdesc;

private int pflag;

private String cid;

public String getPid() {

return pid;

}

public void setPid(String pid) {

this.pid = pid;

}

public String getPname() {

return pname;

}

public void setPname(String pname) {

this.pname = pname;

}

public double getMarket_price() {

return market_price;

}

public void setMarket_price(double market_price) {

this.market_price = market_price;

}

public double getShop_price() {

return shop_price;

}

public void setShop_price(double shop_price) {

this.shop_price = shop_price;

}

public String getPimage() {

return pimage;

}

public void setPimage(String pimage) {

this.pimage = pimage;

}

public String getPdate() {

return pdate;

}

public void setPdate(String pdate) {

this.pdate = pdate;

}

public int getIs_hot() {

return is_hot;

}

public void setIs_hot(int is_hot) {

this.is_hot = is_hot;

}

public String getPdesc() {

return pdesc;

}

public void setPdesc(String pdesc) {

this.pdesc = pdesc;

}

public int getPflag() {

return pflag;

}

public void setPflag(int pflag) {

this.pflag = pflag;

}

public String getCid() {

return cid;

}

public void setCid(String cid) {

this.cid = cid;

}

}

内容来源于网络如有侵权请私信删除

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值