欢迎来到天天文库
浏览记录
ID:57900084
大小:51.55 KB
页数:11页
时间:2020-09-02
《三层架构是指哪三层.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、1.三层架构是指哪三层界面(视图)层业务层数据访问(持久层)2.为什么使用三层职责划分清楚,各司其职,各层配合例如:发现sql语句写错了,sql语句的定义一定在dao层3.上层如何将数据传递给下层例如:数据从界面如何传给业务数据如何从业务传给dao方法:要将数据传给谁,就new谁的对象,然后用new出来的对象调用方法,数据作为方法参数传递4.下层如何将数据传递给上层下层通过返回值将数据传递给上层5.各层中都写什么代码5.1.界面层界面层主要职责是输入和输出1.1.业务层编写控制业务流程的代码,通常是很多if语句来控制业务流程,是核心层例如:业务:用银行卡取钱业务流程1:判断卡是否
2、是银行卡2:验证卡号和密码是否正确3:验证卡是否被冻结4:判断余额是否够用5:是否跨行6:是否跨地区7:开始取钱1.2.数据访问层1.2.1.Dao1.拼写sql语句2.为sql语句的参数准备值3.发送sql和值到dbheleprDao程序编写的模板publicintsave(Useruser)throwsException{Try{拼写sql准备值调用dbhelpoer执行sql}catcha(Exceptione){异常处理,将异常抛出}Finally{Dbheleper.close()}}1.2.2.dbHelper执行sql语句1.三层示例1.1.需求1:实现添加商品2:
3、商品的列表显示1.2.准备开发环境1.2.1.数据库环境CREATEDATABASEthreelayer;USEthreelayer;CREATETABLEproduct(idINTAUTO_INCREMENTPRIMARYKEY,productNameVARCHAR(30),priceDOUBLE);1.2.2.Java环境同一个项目中,每个开发人员的各个环境的版本必须一致1.Jdk的版本:1.82.Eclipse的版本:Kepler3.Jar包:a)Mysql数据库的驱动jarb)Junit的jar1.1.1.创建java项目项目命名为threelayer11261.1.2.
4、分包edu.xbmu.threelayer.view:界面层edu.xbmu.threelayer.service:业务层edu.xbmu.threelayer.dao:数据访问层edu.xbmu.threelayer.pojo:实体类1.1.3.准备DBHelper(其实你可以拷贝)packageedu.xbmu.threelayer.dao;importjava.io.File;importjava.io.FileInputStream;importjava.io.IOException;importjava.sql.Connection;importjava.sql.Dri
5、verManager;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.util.Properties;/***该类的作用是执行sql语句*该类必须通用,通用是指对所有的表的sql语句都能够执行*/publicclassDBHelper{//定义属性privateConnectionconnection=null;privatePreparedStatementstatement=null;privateResultSetrs=null;
6、privatestaticStringURL="jdbc:mysql://localhost:3306/threelayer";privatestaticStringUSER="root";privatestaticStringPASS="root";//硬编码//静态块加载驱动,只加载一次static{try{Class.forName("com.mysql.jdbc.Driver");}catch(ClassNotFoundExceptione){e.printStackTrace();}}//加载数据库的配置文件static{try{Filefile=newFile("c:
7、/db.properties");FileInputStreaminStream=newFileInputStream(file);//Properties是键值对的集合类,父接口是MapPropertiesprop=newProperties();prop.load(inStream);URL=(String)prop.get("url");USER=(String)prop.get("user");PASS=(String)prop.get("pass");}catch(IO
此文档下载收益归作者所有