Java程序设计教程(第2版) 课件 张延军 第12-14章 JDBC编程技术、排队叫号系统的分析和设计、排队叫号系统的编程实现_第1页
Java程序设计教程(第2版) 课件 张延军 第12-14章 JDBC编程技术、排队叫号系统的分析和设计、排队叫号系统的编程实现_第2页
Java程序设计教程(第2版) 课件 张延军 第12-14章 JDBC编程技术、排队叫号系统的分析和设计、排队叫号系统的编程实现_第3页
Java程序设计教程(第2版) 课件 张延军 第12-14章 JDBC编程技术、排队叫号系统的分析和设计、排队叫号系统的编程实现_第4页
Java程序设计教程(第2版) 课件 张延军 第12-14章 JDBC编程技术、排队叫号系统的分析和设计、排队叫号系统的编程实现_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第12周JDBC编程技术11关系数据库2SQL语句4JDBC编程学习提纲3MySQL数据库21.关系数据库数据库(Database)指的是以一定方式储存在存储器中、能为多个用户共享、冗余度小、与应用程序彼此独立的数据集合。主流的关系数据库有Oracle、IBMDB2、MicrosoftSQLServer、Sybase、MySQL等。一个数据库通常包含一个或多个表。表(Table):数据库中用来存储数据的对象,是有结构的数据的集合。先定义表的结构(表中每一列的数据类型、长度、能否为空、是否唯一等)、主键、外键等信息。定义了表结构,就能向表中输入数据。1.1数据库基本知识31.关系数据库所有数据库厂商都提供API操作接口,以方便软件开发人员连接数据库,完成对数据库中数据的存取等操作。常用数据库编程接口有ODBC(RDO、ADO)、JDBC等。1.2数据库编程接口41.关系数据库ODBC。Microsoft公司的ODBC(OpenDataBaseConnectivity)是目前使用最广的、访问关系数据库的编程接口API。1.2数据库编程接口61关系数据库2SQL语句4JDBC编程学习提纲3MySQL数据库72.SQL语句

SQL(结构化查询语言)是用于执行查询的语法,但是SQL语言也包含用于更新数据(update)、插入记录(insertinto)和删除记录(delete)的语法。SQL教程推荐使用全部免费的Web技术教程网站-W3School,网址:/sql/index.asp。

2.1SQL语句82.SQL语句

示例数据库SC中有四个表:学生表、学院表、学生选课表、课程表。2.2数据库SC和SQL语句92.SQL语句1.显示student表中所有记录。(选择)select*fromstudent;2.显示所有女生的信息,查询结果按学号升序排序。(排序)SELECT*FROMstudentWHEREssex='女'ORDERBYsno3.显示所有学生的学号、姓名、性别。(投影)SELECTsno,sname,ssexFROMstudent4.在student表中插入一条记录(插入)insertintostudentvalues(202101001,'测试',4,'男','2002-10-22')2.2数据库SC和SQL语句102.SQL语句5.将student表中学号为202101001的学生的性别修改为女(修改)。updatestudentsetssex='女'wheresno='202101001'6.将student表中学号为202101001的学生删除(删除)。deletefromstudentwheresno='202101001'7.查询所有学生的姓名、课程名称、成绩等信息。(三个表通过外键连接)SELECTsname,cname,sc.gradefromstudents,sc,coursecWHEREs.sno=sc.snoANDo=o2.2数据库SC和SQL语句112.SQL语句

示例数据库hr有七个表:employees职工表、departments部门表、Locations地址表、countries国家表、regions区域表、jobs职位表、job_history工作经历表。2.3数据库HR和SQL语句122.SQL语句1.查询部门名称为Shipping的员工的编号、姓名及所从事的工作。SELECTe.employee_id,e.first_name,j.job_titlefromemployeese,departmentsd,jobsjWHEREe.department_id=d.department_idANDd.department_name='Shipping'ANDe.job_id=j.job_id2.显示经理是KING的员工姓名,工资。selectfirst_name,salaryfromemployeeswheremanager_id=(selectemployee_idfromemployeeswherelast_name='King')2.2数据库SC和SQL语句132.SQL语句3.工资最高的员工姓名和工资。selectfirst_name,salaryfromemployeeswheresalary=(selectmax(salary)fromemployees)4.查询员工的编号,姓名,以及部门名称,包括没有员工的部门。SELECTe.employee_id,e.first_name,d.department_namefromemployeeseRIGHTjoindepartmentsdone.department_id=d.department_id2.2数据库SC和SQL语句142.SQL语句5.查询员工的编号,姓名,以及部门名称,包括不属于任何部门的员工。SELECTe.employee_id,e.first_name,d.department_namefromemployeeseleftjoindepartmentsdone.department_id=d.department_id6.查询所有工资大于等于6000元的员工姓名及其直接领导人的姓名、工资。要求查询结果中在员工和直接领导人之间加入字符串“worksfor”。SELECTe1.first_name,'worksfor',e2.first_name,e2.salaryfromemployeese1,employeese2WHEREe1.manager_id=e2.employee_idANDe1.salary>=60002.2数据库SC和SQL语句152.SQL语句7.查询部门名称为Shipping的员工的编号、姓名及所从事的工作。SELECTe.employee_id,e.first_name,e.last_name,e.job_idFROMdepartmentsd,employeeseWHEREd.department_name='Shipping'ANDe.department_id=d.department_id2.2数据库SC和SQL语句161关系数据库2SQL语句4JDBC编程学习提纲3MySQL数据库173.MySQL数据库

MySQLCommunityServer8.0.26(社区版)下载地址:/downloads/mysql/。Installer版本(推荐),适合初学者。注意:在Window10操作系统中安装MySQL数据库有2个依赖,需要提前安装:Microsoft.NETFramework4.5和MicrosoftVisualC++2019。ZIPArchive版本:mysql-8.0.26-winx64.zip。需要以管理员身份进入命令行进行手动安装和配置。3.1MySQL安装版的下载、安装与配置183.MySQL数据库

安装结束可以从“开始-程序-MySQLInstaller-Community”启动安装器再次对MySQL数据库服务器进行Add、Modify、Update、Remove等操作。MySQL在Windows操作系统默认的安装路径:C:\ProgramFiles\MySQL\MySQLServer8.0,其中bin文件夹中存放MySQL常用命令和管理工具。mysql.exe:MySQL自带命令行管理工具。mysqld.exe:服务器管理工具,一般用于MySQL安装、卸载和初始化。3.1MySQL安装版的下载、安装与配置193.MySQL数据库将mysql-8.0.26-winx64.zip解压缩到硬盘上,配置环境变量path。在E:\mysql-8.0.26-winx64建立文本文件my.ini并编辑内容。以管理员身份运行cmd。初始化MySQL,生成root用户的初始随机密码。E:\mysql-8.0.26-winx64\bin>mysqld--initialize--console初始化,-insecure表示忽略安全性,root用户的初始密码为空。E:\mysql-8.0.26-winx64\bin>mysqldmysqld--initialize-insecure3.2MySQL压缩版的下载、安装与配置203.MySQL数据库安装MySQL服务E:\mysql-8.0.26-winx64\bin>Mysqld--install删除MySQL服务E:\mysql-8.0.26-winx64\bin>scdeletemysql启动MySQL服务E:\mysql-8.0.26-winx64\bin>netstart3.2MySQL压缩版的下载、安装与配置213.MySQL数据库修改root用户的密码。E:\mysql-8.0.26-winx64\bin>mysql-uroot-p输入上面产生的随机密码,进入MySQL提示符:mysql>ALTERUSERroot@localhostIDENTIFIEDBY’123456’;将不好记的随机密码改为自己的密码,如123456ALTERUSERroot@localhostIDENTIFIEDwithmysql_native_passwordby'123456';3.2MySQL压缩版的下载、安装与配置223.MySQL数据库MySQL数据库的管理可以通过三种方式:通过命令行管理工具mysql和mysqladmin;通过Web方式;通过MySQL图形化管理工具。MySQL本身自带命令行管理工具、图形管理工具MySQLWorkBench。MySQL自带的命令行管理工具对使用者要求较高,用户体验较差。MySQLWorkBench在功能和易用性方面比不上第三方开发的管理工具。推荐使用MySQL图形化管理工具有Navicat、HeidiSQL、phpMyAdmin、SQLYog等,建议从功能易用、是否收费、运行效率、中文界面等方面综合选择。3.3MySQL数据库管理工具233.MySQL数据库下载和安装/installers/HeidiSQL_295_Setup.exe新建连接在会话管理器中下面窗口中输入主机名/IP地址、用户、密码、端口、数据库等信息,可以单击“打开”即可进入MySQL数据库管理主界面。3.3MySQL数据库管理工具243.MySQL数据库HeidiSQL主界面包括菜单栏、工具栏、数据库树、编辑器、状态栏等内容。3.3MySQL数据库管理工具253.MySQL数据库HeidiSQL基本操作:数据库操作:数据库新建、删除、修改等。表操作:在数据库中新建表、修改表、删除表、清除表中的数据等。数据操作:插入行、删除行、修改数据等操作。查询操作:输入SQL语句执行。SQL脚本:导出数据库为SQL脚本、运行SQL脚本等。SQL脚本是可以自动执行SQL语句的文本文件。本教材提供了sc.sql和hr.sql两个数据库的SQL脚本文件。在MySQL管理工具中导入SQL脚本可以自动建立数据库、表结构、导入数据等操作。3.3MySQL数据库管理工具261关系数据库2SQL语句4JDBC编程学习提纲3MySQL数据库274.JDBC编程JDK中提供的JDBCAPI主要包含在java.sql包和javax.sql包中。JDBC编程主要涉及DriverManager、Driver、Connection、Statement、ResultSet、PreparedStatement等类或接口。4.1JDBCAPI介绍284.JDBC编程在MySQL中建立测试数据库。建议通过导入sc.sql迅速建立测试数据库,也可以手工建立测试数据库sc。下载JDBC驱动程序。从Internet下载MySQL的JDBC驱动程序。MySQL8.0.26要求JDBC驱动程序为mysql-connector-java-8.0.26-bin.jar,而非原来mysql-connector-java-5.0.4-bin.jar。将jar文件复制到项目中,然后添加到BuildPath中。4.2通过JDBC访问MySQL数据库294.JDBC编程加载驱动程序。通过Class.forName(JDBC驱动程序名)来创建驱动程序的实例,并注册到JDBC驱动程序管理器。Class.forName("com.mysql.jdbc.Driver");//已经不推荐使用Class.forName("com.mysql.cj.jdbc.Driver");建立Connection对象以连接数据库。Stringurl="jdbc:mysql://localhost:3306/sc"。Connectionconn=DriverManager.getConnection(url,user,password);通过Connection对象的close()方法关闭数据库连接。4.2通过JDBC访问MySQL数据库304.JDBC编程功能描述:本程序演示了JDBC访问数据库的步骤,用Statement对象向数据库发送SQL语句,并对返回结果进行处理。4.3用Statement实现静态SQL语句编程314.JDBC编程功能描述:本程序在利用JDBC访问数据库过程中,采用PreparedStatement对象向数据库发送SQL语句,并对返回结果进行处理。4.412.3.4用PreparedStatement实现带参数SQL语句编程敬请批评指正,谢谢!2023年第13周课程设计-排队叫号模拟系统的分析和设计341课程设计需求分析2系统设计学习提纲3知识准备351.课程设计需求分析课程设计是工科专业实践教学的重要组成部分,是在教师指导下对学生进行的阶段性专业技术训练。课程设计是利用所学知识分析问题、解决问题的过程。课程设计在培养学生动手能力、综合能力、实践能力与创新精神的同时,夯实了理论基础,完善了知识体系,加深了对技术的理解。1.1关于课程设计361.课程设计需求分析排队叫号模拟系统应用场景:某营业厅配一台叫号机,设置6个业务窗口,每个业务窗口均可办理指定类型客户的业务。根据业务流量,1-4号窗口暂定为普通窗口,5号窗口暂定为特殊窗口,6号窗口暂定为VIP窗口。1.2需求分析371.关于课程设计1.2需求分析381.课程设计需求分析业务办理信息:今天累计接待客户×××人,其中普通客户×人,特殊客户×人,VIP客户×人。数据归档要求:每天办理的窗口编号、窗口名称、用户号码、接待时间等信息保存到一个文本文件中。语音播报叫号信息。1.3其它要求391课程设计需求分析2系统设计学习提纲3知识准备402.系统设计操作系统:Window1064位JDK版本:JDK11.0.3IDE环境:Eclipse2019-03(4.11)GUI组件:swing、WindowBuilder1.9.2日志组件:Log4j2.13.2文本转语音组件:jacob-1.182.1技术方案412.系统设计根据需求分析,用Excel画出界面草图如下2.2界面设计421课程设计需求分析2系统设计学习提纲3知识准备433.知识准备单例模式(SingletonPattern)是Java中最简单的设计模式之一。单例类负责实例化一个对象,确保这个对象是唯一的,必须为外界提供这一对象。一个营业厅只有一个叫号机,正好符合单例模式。代码实现如下:3.1单例模式443.知识准备

与堆栈(Stack)一样,队列(Queue)是一种操作受限的线性表,支持FIFO(FirstInFirstOut)先进先出,即:只能在队尾插入元素,只能队首删除元素。我们可以用数组、ArrayList、LinkedList去模拟实现队列。这里,我们选择LinkedBlockingQueue,原因如下:LinkedBlockingQueue是线程安全的。由JDK类库提供,经过严格测试,稳定高效。不要重复发明轮子。3.2LinkedBlockingQueue队列453.知识准备

我们可以查阅JDK文档,掌握LinkedBlockingQueue的构造方法和常用方法。3.2LinkedBlockingQueue队列463.知识准备

线程的反复创建、销毁是非常耗费系统资源的。线程池是预先创建线程的一种技术。线程池在还没有任务到来之前,创建并启动一定数量的线程,并使其进入睡眠状态,放入空闲队列中。当大量请求到来之后,线程池为每一次请求分配一个空闲线程,执行指定的线程。线程执行完毕并不销毁线程对象,直接放回线程池空闲队伍中。3.3可调度线程池473.知识准备

这里,我们要模拟普通客户、特殊客户、VIP客户的比例大约为:6:3:1,就要用到可调度线程池:可以指定每隔n秒启动一个相应类型的客户线程。示例程序如下:3.3可调度线程池483.知识准备

JList是一个遵循MVC模式设计和实现的列表组件。JList类的构造方法如下:JList():构造一个具有空的、只读模型的JList。JList(Vector<?>listData):构造一个JList,使其显示指定Vector中的元素。适用于选项数目变化不定的应用场合。JList常用方法如下:publicvoidsetListData(Vector<?>listData)publicvoidsetSelectedIndex(intindex)3.4JList应用示例

493.知识准备

【示例程序】JList应用:单击加入元素按钮向JList中添加一个元素到最后,单击删除元素按钮从JList中添加第一个元素。必须将JList放入JScrollPane中,JList才会根据选项自动出现垂直滚动条。jsp.setViewportView(jl);而不能使用jsp.add(jl)。3.4JList应用示例

503.知识准备

数据归档到

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论