这次作业主要是练习高级程序设计语言与数据库的连接和简单的SQL。我依然是使用java,主要是因为java是这学期学的,还没考试,能多练练就多练练。数据库这次用的SQL server,换一种试试!
一、DBMS及上层开发语言
使用的数据库产品为微软的SQL server 2019(非本地,挂靠在阿里云服务器:47.93.184.169),数据库管理系统软件为微软官方的Microsoft SQL Server Management Studio 18和navicat for SQL server 12企业版。
开发语言为java,IDE为Netbeans 8.2。
二、所使用的调用数据库的方式
JDBC(Java Data Base Connectivity,java数据库连接)。
三、主要接口、函数说明
1.Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
加载SQL server驱动,指明通过jdbc方式加载。前提是加载驱动jar包(sqljdbc4.jar)。
2.Connection接口
Connection与特定数据库的连接(会话),在连接上下文中执行sql语句并返回结果。DriverManager.getConnection(url, user, password)方法建立在JDBC URL中定义的数据库Connection连接上。
连接SQL Server数据库:Connection conn = DriverManager.getConnection("jdbc:microsoft:sqlserver://host:port; DatabaseName=database", "user", "password");//用于获得试图建立到指定数据库 URL 的连接,其中host为连接数据库主机,port为端口号(SQL server默认1433),database为连接到的数据库,user为数据库登陆用户名(默认管理员为sa),password为登陆密码。
常用方法:
createStatement():创建向数据库发送sql的statement对象。
prepareStatement(sql) :创建向数据库发送预编译sql的PrepareSatement对象。
3. Statement接口
用于执行静态SQL语句并返回它所生成结果的对象。
主要使用的Statement类:由createStatement创建,用于发送简单的SQL
常用Statement方法:
execute(String sql):运行语句,返回是否有结果集
executeQuery(String sql):运行select语句,返回ResultSet结果集。
executeUpdate(String sql):运行insert/update/delete操作,返回更新的行数。
4.ResultSet接口
ResultSet提供检索不同类型字段的方法,使用到的有:
getString(int index)、getString(String columnName):通过列号或列名获得在数据库里是varchar、char等类型的数据对象。
next():移动到下一行
使用后依次关闭对象及连接:ResultSet → Statement → Connection
四、关系模式结构
使用LZY_SPJ_LAB3数据库,含有以下两张表:
1.S表
设置有SNO、SNAME、STATUS、CITY四列,数据类型均为nchar,其中SNO为主键,STATUS有check约束【([STATUS]=(10) OR [STATUS]=(20) OR [STATUS]=(30) OR [STATUS]=(40))】。
2,SPJ表
设置有SNO、PNO、JNO、QTY四列,数据类型均为nchar,其中(SNO,PNO,JNO)为主键,SNO为S表中SNO的外键。
五、功能介绍
1.信息录入(仅录入S表和SPJ表);
2.根据供应商代码和供应商状态分别查询供应商信息;
3.删除指定供应商代码的供应商信息(包括该供应商的供应情况信息);
4.按照供应商代码修改供应商供应情况表信息,将QTY增加10%。
5.全部信息浏览功能。
六、实现按供应商代码和供应商状态查询功能的界面截图
七、拓展功能
1.根据供应商名字或城市查询供应商信息。
2.用户可以使用SQL语句插入、修改或删除数据
八、系统缺陷与不足
1.初次使用运行速度慢,可能是因为我为了保证不占用太多的数据库资源,每一步操作之后都会关闭数据库连接。
2.通过输入sql语句进行数据库操作的功能存在局限性,仅能完成部分简单操作。
九、与文件系统的区别
1.数据安全性不同,文件系统我使用的excel,不存在主键约束、关系约束等问题,数据容易出错;再者文件系统不需要用户密码认证。
2.连接方式不同,文件系统使用Apache公司的POI技术,对excel进行操作,本系统通过JDBC操作SQL server数据库。
3.数据结构性联系不同,文件系统两个表无法建立联系,而数据库系统可以通过外键建立联系。
4.数据共享方式不同,文件系统实现以文件为单位的数据共享,数据库系统实现以记录和字段为单位的数据共享。