实验三《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--结论----------
正在阅读:
实验三《JDBC与数据库访问》11-06
用REG过程进行回归分析09-13
面向多种模式的NSTL全国服务体系建设05-29
外汇例题及练习10-30
流体阻力实验报告09-01
部编本人教版七年级语文上册第五单元全部教案(共7个) - 图文03-09
除夕夜作文【精彩8篇】03-22
当前汉语言文学教育中存在的问题中英文对照05-09
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 实验
- 数据库
- 访问
- JDBC
- 江西省小学特高级教师资格条件
- 小学数学研究性学习课题结题申报表
- 软饮料 - 豆乳类饮料
- 《骆驼祥子》名著阅读(含答案)
- 360万燃烧机控制要求
- 新概念英语lesson1-10知识点及练习
- 河北省中小学骨干校长培养与管理策略-最新教育资料
- 江苏师范大学文学院本科生必读书目100本
- 电力系统分析试卷及答案
- 基于FPGA的智能变电站SV和GOOSE的实现
- 无线传感器网络知识点
- 《农村小学生良好行为习惯养成的研究》研究报告
- 供热外网毕业设计说明书(后)
- ansys 一些函数命令
- 关于加快农业发展,促进农民增收的建议
- Unit1 Playing sports Topic2 we should learn teamwork Section A-D
- XXX云计算项目技术方案(详细版)
- 高新区高2014届11月月考生物试题 - 图文
- 2005年高考数学试卷 湖北文
- 《管理学原理与方法》习题及答案