博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java学习不走弯路教程(9 三层结构)
阅读量:4704 次
发布时间:2019-06-10

本文共 1767 字,大约阅读时间需要 5 分钟。

三层结构

一. 前言

在前上一章教程中,介绍了ORM框架技术。
本章将在上一章的基础上,进一步扩展程序。

注:

1.本文针对初学Java的同学训练学习思路,请不要太纠结于细节问题。
2.本文旨在达到抛砖引玉的效果,希望大家扩展本例子,以学到更多知识的精髓。

学习本章需要准备的知识:

1.读完本系列教程的前面章节。
2.了解三层结构该概念。

二. 步入正题

话不多说,大家自己理解,下面步入正题:

JavaWeb开发基本上可以分为三层,web层,service层,dao层。

如下图所示,其中每一层维护着自己层专有的对象,比如VO,BO,DO

 

一个基本的原则是下层的设计不能依赖于上层的对象。

在前几章我们做的ORM框架属于DAO层,本章我们把对DAO层调用的代码放在Service层中。

程序的结构如下:

代码如下:

1 /** 2  *  3  * @author http://www.java123.vip 4  * 5  */ 6 public class PersonService { 7  8     public void savePerson(Person person) { 9         PersonDao personDao = new PersonDao();10         personDao.savePerson(person);11     }12     13     public Person getPerson(String personid) {14         PersonDao personDao = new PersonDao();15         Person person = personDao.getPersonById(personid);16         17         return person;18     }19 }

 

三. 测试

程序的入口变为Service层,我们用如下代码来进行测试:

1 /** 2  *  3  * @author http://www.java123.vip 4  * 5  */ 6 public class PersonServiceTest { 7  8     public static void main(String[] args) { 9         10         PersonService personService = new PersonService();11         12         Person person = new Person();13         person.id = "4";14         person.username= "qqq";15         person.passwd = "uuu";16         personService.savePerson(person);17         18         Person personResult = personService.getPerson("4");19         20         System.out.println("id:"+personResult.id);21         System.out.println("username:"+personResult.username);22         System.out.println("password:"+personResult.passwd);23     }24 }

程序输出如下:

insert into Person ( id,username,passwd ) values ('4','qqq','uuu')1 row saved.id:4username:qqqpassword:uuu

完整程序请大家从[]下载

如有问题,大家来我的网站进行提问。

版权声明:本教程版权归java123.vip所有,禁止任何形式的转载与引用。

转载于:https://www.cnblogs.com/java123-vip/p/9768076.html

你可能感兴趣的文章
laravel 通过ftp上传的时候报错 Use of undefined constant FTP_BINARY - assumed 'FTP_BINARY
查看>>
laravel修改了配置文件不生效,修改了数据库配置文件不生效
查看>>
关于PHP中token的生成的解析
查看>>
微信小程序之自定义底部弹出框动画
查看>>
小程序中父子组件间的通信与事件
查看>>
微信小程序-收货地址左滑删除
查看>>
小程序实现左滑删除效果
查看>>
微信小程序 - 使用npm(第三方包)
查看>>
npm package.json配置整理
查看>>
pecl和pear 的区别和联系
查看>>
(一一三)使用系统自带框架操作SQLite3数据库
查看>>
上传压死下载 & 常见TCP选项
查看>>
linux下nano中复制粘贴剪切的快捷键是什么
查看>>
js instanceof
查看>>
不错的博文地址
查看>>
javascript DOM知识脑图
查看>>
Mongodb 启动关闭脚本并设置开机自动启动Mongodb
查看>>
JVM----垃圾回收算法
查看>>
浅谈<持续集成、持续交付、持续部署>(二)
查看>>
代码性能分析-Dottrace跟踪代码执行时间
查看>>