java数据库连接与crud操作

上传人:第*** 文档编号:61704004 上传时间:2018-12-10 格式:PDF 页数:16 大小:425.61KB
返回 下载 相关 举报
java数据库连接与crud操作_第1页
第1页 / 共16页
java数据库连接与crud操作_第2页
第2页 / 共16页
java数据库连接与crud操作_第3页
第3页 / 共16页
java数据库连接与crud操作_第4页
第4页 / 共16页
java数据库连接与crud操作_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《java数据库连接与crud操作》由会员分享,可在线阅读,更多相关《java数据库连接与crud操作(16页珍藏版)》请在金锄头文库上搜索。

1、一、学习内容 1.字符串的处理 2.流的概念,Java 的字节流与字符流 3.文件的读写 4.字符集与编码 (UTF-8, GB2312/GBK, BIG5, ASCII) 5.数据库的连接及 CRUD 操作 二、任务 1.创建学生类 Student 2.请从抽象类 AbstractStudentRepository(下载:AbstractStudentRepository 和 IStudentDB 源代码)中继承一个类 StudentRepository,实现方法 loadStudents()和 saveStudents(), 要求能够支持对 students_UTF8.txt(下载:UTF

2、-8 编码的学生数据文件) 和students_GB2312.txt(下载:GB2312编码的学生数据文件)等不同编码的文件的操作 (提 示:参考 FileInputStream/FileOutputStream, InputStreamReader/OutputStreamWriter, BufferedReader/BufferedWriter 等类 的 API 文档): 3.请使用接口 IStudentDB(下载:AbstractStudentRepository 和 IStudentDB 源代码)实现类 StudentDBMysql, 用于处理 Student 类在 Mysql 数据库

3、的操作,在类中添加方法 createStudentTable()用于创建 students 表格: 数据库类型: mysql (下载 Mysql 驱动:Mysql JDBC 驱动) 主机地址:210.32.80.105 数据库名:本人学号 用户名:本人学号 密码:身份证后 6 位 数据库管理地址:http:/210.32.80.105/phpmyadmin 4.创建类 TestStudents:测试从文件中读取学生数据; 向文件写入学生数据; 连接数据库; 创建 student 表;向 student 中插入文件中的全部学生数据;在数据库中按自己的学号查 询数据;从数据库中删除自己学号的数据。

4、 5.请仿照已实现的 StudentDBMysql 使用接口 IStudentDB 实现类 StudentDBAccess, 实现 Access 数据库连接的操作。(下载 access 数据库:Access 数据库文件用户名、密码均为 空) 三、内容与要求 1.学生数据文件中的学生数据格式如下: 尹克平;0012031102;英语(师范);外国语学院 谢惠良;0112023302;市场营销;经贸管理学院 胡康康;0112032306;初等教育(英语方向)(师范);教师教育学院 程双喜;0112033105;外贸英语;外国语学院 何勇;0112041114;数学与应用数学(师范);数学与信息工程

5、学院 即每个学生数据占一行,数据中每个字段以“;”分隔,对应字段为姓名(xm)、学号(xh)、专 业(zy)、学院(xy),其中学号是学生的惟一标识,不存在重复学号的两位学生。请按字段 要求实现学生类 Student。由于学号作为学生的惟一标识,请在 Student 类中重写方法 hashcode()和 equals(Object obj)这两个方法。(为了实现的需要,只要学号相同的两个 Student 实例将会视为相等) 2.转换学生数据字段,将专业名与是否师范分开,即英语(师范)转换为英语;true,市场营销 转换为市场营销;false 3.修改学生类 Student:增加变量“是否师范(

6、sfsf)”;根据我们实验的要求请实现一个构造 方法 Student(String str),它可以根据提供的文件中每行学生的数据来创建对应学生实 例。(如:“尹克平;0012031102;英语(师范);外国语学院“)。 4.对于 saveStudents()方法,需要实现一个 Comparator接口。然后在该方 法中对所有学生以学号进行排序。提示:查看 Set 和 Arrays 的 API 文档。将所有学生数 据写回文件,内容如下: 尹克平;0003121102;英语;true;外国语学院 谢惠良;0102123302;市场营销;false;经贸管理学院 胡康康;0103122306;初等

7、教育(英语方向);true;教师教育学院 程双喜;0103123105;外贸英语;false;外国语学院 何勇;0104121114;数学与应用数学;true;数学与信息工程学院 5.在上一步实现的基础上,请修改 Student 类的构造方法,要求其能根据参数 str 中的”;” 字符的个数来创建正确的 Student 对象。即: a.若str=”尹克平;0012031102;英语(师范);外国语学院” 则 Student 实例中的 xm=”尹克平”, xh=”0012031102”, zy=”英语”, sfsf=true, xy=” 外国语学院” b.若str=”尹克平;0012031102

8、;英语;false外国语学院” 则 Student 实例中的 xm=”尹克平”, xh=”0012031102”, zy=”英语”, sfsf=true, xy=” 外国语学院” c.若str=”0012031102” 则 Student 实例中的 xh=”0012031102”, 其它变量全为 Java 的对应默认值 6.在数据库中创建一个 student 表,包含字段:姓名(xm)、学号(xh)、专业(zy)、是否师 范(sfsf)、学院(xy),sql 语句如下: Mysql 数据库: CREATE TABLE student (xm VARCHAR( 24 ),xh VARCHAR(

9、24 ),zy VARCHAR( 24 ),sfsf TINYINT( 1 ),xy VARCHAR( 24 ),PRIMARY KEY ( xh) CHARACTER SET utf8 Access 数据库: CREATETABLEstudent(xmVARCHAR(24),xhVARCHAR(24),zy VARCHAR(24),sfsf BIT,xy VARCHAR(24),primary key(xh) 7.在表中查找出学号为自己学号的数据的 sql 语句: SELECT * FROM student WHERE xh=学号 8.将自己学号的数据删除的 sql 语句: DELETE F

10、ROM student WHERE xh=学号 9.在数据库中添加的数据的 sql 语句: INSERT INTO student (xm, xh, zy, sfsf, xy) VALUES (“尹克平”, “0003121102”, “英语”, “true”, “外国语学院”) 10. 更新学生数据的代码: UPDATE student SET zy = 新专业名, sfsf = 0 或 1 WHERE xh = 我的学号 四、实验要求 1.使用 Eclipse 动手编程,需要相关的代码截图和运行结果截图 2.整理上机结果和体会 3.完成实验报告 五、实验过程 1.创建 student 类

11、packagepackage streamJdbcPac; publicpublic classclass Student privateprivate String xm,xh,zy,xy; privateprivate booleanboolean ifSF=falsefalse; publicpublic booleanboolean isIfSF() returnreturn ifSF; publicpublic voidvoid setIfSF(booleanboolean ifSF) thisthis.ifSF = ifSF; publicpublic String getXh()

12、 returnreturn xh; publicpublic voidvoid setXh(String xh) thisthis.xh = xh; publicpublic String getXm() returnreturn xm; publicpublic voidvoid setXm(String xm) thisthis.xm = xm; publicpublic String getXy() returnreturn xy; publicpublic voidvoid setXy(String xy) thisthis.xy = xy; publicpublic String g

13、etZy() returnreturn zy; publicpublic voidvoid setZy(String zy) thisthis.zy = zy; publicpublic Student(String line) String info=line.split(“;“);/用;分割字符串 ifif(info.length=4) thisthis.xm=info0; thisthis.xh=info1; thisthis.zy=info2; thisthis.xy=info3; ifif(thisthis.zy.endsWith(“(师范)“) thisthis.ifSF=true

14、true; intint index=thisthis.zy.indexOf(“(师范)“); thisthis.zy.substring(0, index); elseelse throwthrow newnew IllegalArgumentException(); publicpublic booleanboolean equals(Object obj) Student s=(Student)obj; ifif (pareTo(s.xh)=0) returnreturn truetrue; returnreturn falsefalse; publicpublic intint has

15、hCode() returnreturn thisthis.xh.hashCode(); publicpublic String toString() returnreturn thisthis.xm+“ “+thisthis.xh+“ “+thisthis.zy+“ “+thisthis.ifSF+“ “+thisthis.xy; 2. 实现类 StudentRepository packagepackage streamJdbcPac; importimport java.io.*; importimport java.util.*; publicpublic classclass Stu

16、dentRepository extendsextends AbstractStudentRepository publicpublic StudentRepository(String dataFilePath, String charset) supersuper(dataFilePath, charset); / TODOTODO 自动生成构造函数存根 Override publicpublic voidvoid loadStudents() trytry FileInputStream fis=newnew FileInputStream(thisthis.dataFilePath);/文件字节流 InputStreamReader isr=newnew Inpu

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号