实验三《JDBC与数据库访问》

更新时间:2023-11-06 18:37:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验三 JDBC与数据库访问

实验课程名:Java程序设计

专业班级: 计算机科学与技术(1)班 学号: 201540410126 姓名: 甘全中 实验时间: 5.23-6.6 实验地点: K4-202 指导教师: 伍红华

一、实验目的和要求 1、理解JDBC的组成和结构 2、掌握Java程序与数据库的链接技术 3、掌握在Java程序中使用java.sql包中提供的DriverManager类、Connection 、Statement、ResultSet类来存取数据库中数据的方法。 二、实验内容 首先建立一个数据库,在此基础上通过编程实现以下功能: (1)在数据库中建立一个表,表名为职工,其结构为:编号、姓名、性别、年龄、工资、是否党员。 (2)在表中输入多条记录(自己设计具体数据) (3)将年龄在45以上员工的工资增加15%,其他人增加10%。 (4)将每条记录按照工资由大到小的顺序显示在屏幕上。 (5)删除工资超过1500的员工记录。 要求: (1)使用的数据库系统不受限制,可以是小型数据库系统如MS Access,VFP,MySql或者大型数据库,如SQL server 等。 (2)使用JDBC不受限制,可以使用JDBCC-ODBC桥,也可以使用其他数据库专用的JDBC。 (3)在每项操作前后,分别显示相应信息,以验证操作是否正确完成。 实验步骤: //start--实验内容(1)核心代码----------(附加) 建职工表: 建立职工表: //end--实验内容(1)核心代码----------(附加)

//start--实验内容(2)核心代码---------- 表中输入多条员工记录: 在SQL server中查询职工表为: 源代码为: Statement st=dbconn.createStatement(); st.executeUpdate(\职工 values('2017001','李勇','男',43,2800,'是')\); st.executeUpdate(\职工 values('2017002','刘晨','女',43,1200,'是')\); st.executeUpdate(\职工 values('2017003','王敏','女',32,1400,'否')\); st.executeUpdate(\职工 values('2017004','张立','男',46,2500,'是')\); st.executeUpdate(\职工 values('2017005','李明','男',34,1350,'否')\); st.executeUpdate(\职工 values('2017006','王颖','女',28,1800,'是')\); st.executeUpdate(\职工 values('2017007','甘全中','男',20,2400,'是')\); st.executeUpdate(\职工 values('2017008','张红艳','女',23,1100,'否')\); st.executeUpdate(\职工 values('2017009','陈媛','女',48,2800,'是')\); st.executeUpdate(\职工 values('2017010','程浩','男',46,3200,'是')\); st.close(); //end--实验内容(2)核心代码----------

//start--实验内容(3)核心代码---------- 将年龄在45以上员工的工资增加15%,其他人增加10%。 源代码为:Print()函数为: static void Print(ResultSet result)throws SQLException{ } static void ChangeSalary(Connection dbconn)throws SQLException{ } Statement st=dbconn.createStatement(); System.out.println(\年龄在45以上员工的工资增加15%,其他人增加10%后的数据为--------\); System.out.println(\编号\\t\\t\+\姓名\\t\\t\+\性别\\t\+\年龄\\t\+\工资\\t\+\是否党员\); ResultSet result=st.executeQuery(\职工\); while(result.next()){ } st.close(); System.out.print(result.getString(\编号\)+\); System.out.print(result.getString(\姓名\)+\); System.out.print(result.getString(\性别\)+\); System.out.print(result.getInt(\年龄\)+\); if(result.getInt(\年龄\)>45){ } else System.out.print((result.getInt(\工资\)*1.10)+\); System.out.println(result.getString(\是否党员\)+\); System.out.print((result.getInt(\工资\)*1.15)+\); System.out.print(result.getString(\编号\)+\); System.out.print(result.getString(\姓名\)+\); System.out.print(result.getString(\性别\)+\); System.out.print(result.getInt(\年龄\)+\); System.out.print(result.getInt(\工资\)+\); System.out.println(result.getString(\是否党员\)+\); //end--实验内容(3)核心代码----------

/start--实验内容(4)核心代码---------- 将每条记录按照工资由大到小的顺序显示在屏幕上 源代码为: static void Sort(Connection dbconn) throws SQLException { } Statement st=dbconn.createStatement(); ResultSet result=st.executeQuery(\职工 order by 工资 DESC\);//降序desc System.out.println(\按照工资由大到小的顺序排列--------------------\); System.out.println(\编号\\t\\t\+\姓名\\t\\t\+\性别\\t\+\年龄\\t\+\工资\\t\+\是否党员\); while(result.next()){ } st.close(); Print(result); 用户可以用order by子句对查询结果按照一个或多属性列的升序(ASC)或降序(DESC)排列,默认值为升序。 //end--实验内容(4)核心代码---------- /start--实验内容(5)核心代码---------- 删除工资超过1500的员工记录 源代码为: static void Delete(Connection dbconn)throws SQLException{ Statement st=dbconn.createStatement(); st.executeUpdate(\职工 where 工资 >=1500\); ResultSet result=st.executeQuery(\职工\);

} System.out.println(\删除工资超过1500的员工记录后的数据表为---------------\); System.out.println(\编号\\t\\t\+\姓名\\t\\t\+\性别\\t\+\年龄\\t\+\工资\\t\+\是否党员\); while(result.next()){ } st.close(); Print(result); //end--实验内容(5)核心代码---------- 三、结论(写本次实验的收获) //start--结论---------- 1.理解JDBC的功能。Java DataBase Connectivity是使用Java存储数据库系统的解决方案,它将不同的数据库间各自差异的API与标准SQL(Structured Query Language)语句分开看待,实现数据库无关的Java操作接口。JDBC为多种关系数据库提供统一统一的访问。 2.SQL Server数据库使用com.microsoft.sqlserver.jdbc.SQLServerDriver(Pure Java Driver)驱动。利用驱动程序管理类(DriverManager)注册后,并用其提供的方法getConnection()建立与数据库的连接。 3.建立了与数据库的连接后,对数据库的操作需要Statement类(执行基本SQL语句功能)、PreparedStatement(继承Statement类)类(提供SQL语句的预编译功能)或CallableStatement(继承PreparedStatement类)类(执行数据库中的存储过程)来完成。 4.Statement类提供executeUpdate、executeQuery等方法来执行SQL语句,其中executeUpdate()主要使用执行create table、insert、drop table、alter table等会改变数据库内容的 SQL语句,并且会返回int结果,表示记录变动的数目;executeQuery()用于select等查询数据库的SQL语句,并且会返回java.sql.ResultSet对象代表的查询结果,查询的结果是一条一条的记录。 5.通过本次实验基本了解Java存储数据库的原理及其基本过程。还有就是在JDBC编程的过程时要养成经常释放连接的习惯。执行完数据库相关操作后,切记一定要通过相关对象的close( )方法显示关闭和数据库的连接。原因在于Java中的所有JDBC连接对象无法通过Java的自动回收机制释放占用的内存,因此应用程序运行长时间以后,内存消耗会越来越大,造成不必要的性能隐患。通过JDBC开发是的应用程序,显示地关闭和数据库的连接并释放对象占用的内存是必不可少的步骤。 //end--结论----------

本文来源:https://www.bwwdw.com/article/ieg2.html

Top