付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、北京传智播客教育 三层项目蒋坤第一天内容复习 介绍课程体系介绍知识点介绍三层html-css-js服务员-厨师-采购-菜业务-逻辑-数据三层是什么为什么要有三层需求设计数据库搭建三层做登录做房间模块 -增删改查三层项目课前解说第一三层项目是为了练习三层和 之前所有课程的一个总结,-目的只有一个就是练习,练习到非常熟练.第二没有难点和深入问题.第三知识内容没到后期的 所以内容无法太深.想玩底层的给我去学嵌入式复习 前期数据库内容几个常用的对象:Connection, Command, DataReader, DataAdapter,Datatable什么是 课程体系核心技术课程 三层架构原理、手
2、写三层、商业级代码生成器、三层架构应用案例、MD5加密解密,Sqlite数据库、观察者设计模式、NPOI、拼音检索三层项目的知识点一、Md5二、Excel操作三、分层开发四、单例模式五、多条件搜索六、代码生成器七、如何设计数据库(数据库范式)八、窗体之间事件传值三层项目(难)复杂项目不能把SQL语句直接写到界面里,不模块化、难以维护,应该采用三层架构。通过后面学习再去理解三层架构的优点,现在先吸收,再理解。当然不是所有公司都这么做,还是看公司习惯。Web开发中的三层架构也是同样的结构。还有更复杂的三层架构和多层架构。每个人写法都不一样,记住精髓!三层只是一个比较好的软件架构,不是非用三层不可。
3、界面层UI;数据访问层DAL(Data Access Layer);业务逻辑层BLL(business logic layer )。实体类就是Model;对数据进行操作的代码写在DAL中,一般就是SQL语句,DAL只有对数据的操作,没有“如果金额大于20则不能删除”这样的逻辑;BLL调用DAL中的代码进行逻辑操作,比如“如果金额大于20则不能删除”。SQL语句、 的类一般只应该出现在DAL中三层和 做出项目需求分析餐饮-数据库设计需要的工具MindMapPowerDesigner sqlitestudio三层创建顺序先创建Model,DAL,BLL,UI.搭界面,Model中创建Person类
4、,添加字段.DAL中添加sqlhelper,MemberDAll,以及UI中添加配置文件.并且sqlhelper中创建datatable方法,2.增删改查:Sqlite配置App.config文件的配置 命名空间的导入using System.Data.SQLite;Sqlitehelper的封装复习登录界面登录,窗体传值,增删改查1.登录:点击登录显示主窗体连接字符串(添加引用,导入命名空间)创建sqlhelper类判断用户名和密码是否为空(方法)获得用户名和密码写sql语句查询数据库中是否有这个用户(方法)最后判断登录窗口专业化Application.Run的窗口不能作为登录界面,因为Ap
5、plication.Run 起来的窗口是主窗口,主窗口适合长期显示,主窗口一旦关闭程序就终止了。专业化的登陆界面启动时窗口位于屏幕中央StartPosition=CenterScreen设定按钮的DialogResult,当点击按钮的时候窗口关闭,并且执行操作。设定窗口的DialogResult即可关闭窗口并且让ShowDialog方法返回设置的值。对话框的风格,不能随意的拖放大小、最大化FormBorderStyle=FixedDialogMinimizeBox=FalseMaximizeBox=FalseAcceptButton设置回车登录CancelButton设置Esc退出错误和异常信
6、息把备注的代码添加就可以了操作举例图: 数据库操作图增删改ExcuteNonQuery()返回受影响行数三层总结三层:UI(界面,User Interface)、BLL、DAL。Model是在三层之间进行数据传递的。UI层调用BLL、BLL调用DAL,数据用Model传递,UI不能直接调用DAL。Model不是一个层。DAL层只有SQL语句和数据处理,其他层一般不应该出现SQL语句以及和 相关的类简单的BLL只是调用DAL,但是BLL不是打酱油的:数据校验应该放到BLL;BLL也会组合DAL成新的操作,比如ChangePassword。DAL层中只要和数据库操作,BLL中才有具体的逻辑三层和所
7、有代码写在一起的区别就像分工明确的麦当劳和收钱、做饭一起的卖煎饼的区别。三层一般会比不分层慢,但是为了分工明确,这样的少量的性能下降是可以的,很多时候效率不是唯一追求的因素。主界面会员窗体会员管理窗体会员窗口涉及到窗口传值,在窗体加载的时候显示所有的会员信息,窗口中有增加,修改,删除和充值四个按钮,新增和修改按钮公用一个窗体(传值)编号/姓名:模糊查询新增会员小窗口中把会员登记绑定到下拉框扩展点击会员把该会员所有的消费记录显示出来(*)3.窗体传值当前窗体和对话框窗体之间传值,本项目中窗体之间传值几乎都是以事件方式来做.窗体之间传值可以通过属性,委托和事件,复习委托和事件.系统事件:event
8、 EventHandler会员增和修改传值的时候传的是标识和对象商品管理窗口房间管理窗口商品管理窗体和房间管理窗体加载显示所有的商品分类和商品信息添加和删除已经修改商品分类和商品信息根据商品分类显示该分类下的所有商品,此项目类别过滤和拼音查询扩展(*)房间管理窗体加载显示所有房间和餐桌对房间和餐桌的增加删除和修改涉及窗体传值,在主窗体需要为该窗体注册关闭事件刷新数据库设计数据库设计和主程序的界面表的设计,字段的设计,注意哪些问题?表中的标识列,可空类型,表之间的关联.PowerDesigner和sqlitestudio-2.1.4工具的使用主界面动态加载房间类型和餐桌创建Tabpage和Lis
9、tView还有动态注册事件以及添加图片显示餐桌编号和绑定对象到tag属性中开单窗口开单1.判断用户是否选中餐桌,并把餐桌编号和房间编号和餐桌对象(id)传到开单窗体中.2.判断用户是否选中开单立即消费,如果不选则添加一个订单,如果选择则显示出增加消费的窗体并把餐桌对象进行传值开单的同时操作三张表,桌子的状态,订单表,订单表和餐桌表的中间表增加消费窗口增加消费窗体加载则获取餐桌对象并加载该餐桌的消费菜单,计算消费金额和菜单数量其次加载所有的商品,加载所有的项目和商品(递归复习),模糊查询双击菜单则把商品添加到消费菜单中,多表连接(难度*)并刷新.退菜则删除选中商品,确定则把消费金钱存到订单表中结
10、账窗口结账窗体加载传餐桌对象,并加载该餐桌的消费菜单,消费金额,加载会员,显示级别,折扣和余额最后结账,修改订单状态,修改餐桌状态,并在窗体关闭后主窗体刷新把消费菜单保存到一个excel文件中(扩展).主窗体点击某餐桌可以加载该餐桌消费的菜单信息MD5算法思考:系统密码明文存储有哪些缺点?MD5算法是一种散列(hash)算法(摘要算法,指纹算法),不是一种纯压缩算法,不是一种加密算法(易错)。任何长度的任意内容都可以用MD5计算出散列值。介绍工具:CalcMD5.zip。MD5长度一般是32位的16进制数字符串(比如71f396e4134a1160d90bb1439876df31),MD5值的
11、个数是有限的,但是源数据是无限的,因此存在着不同的内容产生相同MD5值的概率。因此MD5算法不可逆,也就是只能得到内容对应的MD5值,无法由MD5值反推内容。但是对不同的内容产生相同MD5值的概率非常非常非常低!Password字段保存用户输入密码的MD5值,这样系统管理员、黑客也不知道用户的密码是什么,也就避免了用户的其他系统密码被利用的问题判断密码正确性的方法:计算用户输入的密码的MD5值,与数据库存储的MD5值进行比较,如果相等则认为密码正确。为什么很多网站只有密码重置,没有找回原密码功能?。应用:计算文件的MD5值来检验文件没有被篡改过。MD5算法2MD5算法理论上是不可逆的,因此攻击
12、的唯一办法就是碰撞。两个不同的内容生成相同的MD5值,这就叫碰撞。MD5算法的碰撞概率非常小。找到一个内容虽然不同但是产生同样MD5的内容即可。不要露怯,王小云不是破解了MD5算法,只是发现缩短枚举碰撞时间的理论而已。那些MD5暴力破解工具(Md5逆向暴力破解.rar)、网站怎么回事?如果要你做一个“破解”MD5的网站,如何加快“破解”的速度?讨论提出方案。为了防止用户偷懒,算两次MD5值,或者加上一个固定的字符串计算字符串的MD5代码:备注中。思考:如何加快暴力破解的速度。(*)MD5的其他应用:第三方支付用MD5对金额、订单号等进行散列计算,来保证数据是对方发出的。(*)和MD5类似的还有
13、SHA等算法。阶段目标:能够明白原理开发出MD5登录程序。拼音检索(面试侃点)为什么要用拼音检索?(为客户提供拼音模糊搜索,数据库英文列的查询效率比汉字高)Visual Studio International Pack练习:根据文档学习使用方法。发下安装包自己探索。目标:输出一个汉字的拼音。CHS:Simplifed Chinese,简体中文。CHT:Traditional Chinese :繁体中文。两种实现方式:实时检索(速度慢);增加一个拼音字段(速度快,有冗余,必要的冗余是可以的)生成拼音的方式,点击按钮来生成练习:实现按拼音检索功能。不考虑多音字。练习:自己根据文档学习简繁转换类的
14、使用。Excel基础整个Excel表格叫工作表:Workbook;工作表包含的叫页:Sheet;行:Row;单元格:Cell。Excel中的电话号码问题,看起来像数字的字符串以半角单引号开头就没问题了。程序处理Excel的技术OLE Automation:程序启动一个Excel进程,然后和Excel进程进行通讯来进行Excel的操作。优点:强大,能够使用Excel的所有功能,要求装Excel,微软最推荐这种用法,因为可以促进Excel的销量。会启动Excel进程,不适合于服务器(比如 网站,安全性、效率)。参考资料 。演示一下。演示一下,引用Excel.Interop,代码在备注(*)把Exc
15、el当成数据库,使用Microsoft.Jet.OleDb访问访问Excel ,参考资料 只适合于完全二维结构,功能最弱,很少用。不用装Excel。(*) OpenXML,微软提供的读写Excel的技术,优点和NPOI差不多,不过只能处理xlsx格式文件。docx、pptx。NPOI、MyXls等,NPOI能够分析Excel文件的格式,能够进行常用Excel操作,不依赖于Excel,节省资源,没有安全性、性能的问题,在 中用最合适。只能处理xls格式文件、不能处理xlsx这样的新版本Excel文件格式。处理xlsx还要用OpenXML。NPOI组件的引入我们平时调用的类是已经添加到引用的,如果
16、想调用系统内置的没有添加引用的其他dll(*严格的说是在GAC中的Assembly)就要添加引用,在【.Net】选项卡中选择,对于另外一些第三方dll(*严格说是Assembly)则需要点击【浏览】选项卡选择对应的dll文件。将NPOI包解压到硬盘中,然后在项目中添加引用,浏览,将解压目录下的dll全部添加进来(*)POI是Apache的一个Java开源项目,NPOI是POI在.net下的移植版本,很多.Net的移植版本开源项目都是在原来的Java版本名称前加上N,比如NHibernate、NDoc、NUnit、NAnt。NPOI起步using NPOI.HSSF.UserModel;1、读取
17、 (暂时不用关心Stream是什么东西) using (Stream stream = File.OpenRead(c:客户资料.xls) HSSFWorkbook workbook = new HSSFWorkbook(stream); MessageBox.Show(workbook.GetSheetName(0); 2、遇到错误别慌,仔细看错误信息。可能遇到的问题:文件被其他进程占用。3、(*)NPOI处理WPS生成的XLS有问题。读取Excel读取字符串类型数据MessageBox.Show(sheet.GetRow(3).GetCell(4).StringCellValue); 读取数字类型数据NumericCellValue。判断单元格数据类型:读取GetCell(4).CellType,与HSSFCell类中定义的常量比较即可。判断使用区域:结束行号:LastRowNum写入Excel HSSFWorkbook workbook = new HSSFWorkbook(); HSSFSheet sheet = workbook.CreateSheet(); HSSFRow
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 某化工厂质量管理体系
- 少儿人工智能培训指南
- 幼儿园开学教学计划7篇
- 幼儿园开展秋季运动会活动报道
- 2025-2026学年初一数学教案怎么写
- 2025-2026学年大单元教学设计教学法
- 2020春八年级物理下册 7.2弹力教案 (新版)新人教版
- 2025-2026学年seasons教学活动设计
- 2025-2026学年大班果实的教案
- 小学主题班会课件:团结友爱与合作共赢
- 2026年基础设施建设与管理知识考试及答案
- 2026广东佛山市顺德区村(社区)大学生CEO选聘100人备考题库及一套参考答案详解
- 2026年全国高考语文(全国Ⅰ卷)真题及答案
- 2026年7月自考13996旅游接待业押题及答案
- 2026春西师大版小学数学四年级下册期末综合测试卷含答案
- IATF16949 五大核心工具综合培训(APQP-FMEA-SPC-MSA-PPAP)
- 2026年(春新版)道德与法治二年级下册1-4单元全套试卷
- 26年胸膜间皮瘤评估实操指引
- 浙江省绍兴市柯桥区2024-2025学年七年级下学期期末数学试卷(含答案)
- 温州市中考:《科学》2023年考试真题和参考答案
- 安全风险分级管控培训
评论
0/150
提交评论