实训报告
实训课程:
JAVA WEB项目实训
实训名称:
JAVA项目实训综合能力培养 实训地点:中国江苏无锡国家软件园巨蟹座C601 学生姓名:胥康 学号:140703133 指导教师:张志华
实训时间:2016年7月22日
实训数据库MySQL与JAVA 编程
一、实训目的
熟悉扫描器结构及工作原理,监测输入实训结果分析,通过该实训,从设计到性能测试完成完整的实训流程,锻炼同学编程能力、测试能力、设计能力、全局把控能力、学习能力、动手能力和分析问题能力等。
二、实训内容
1、设计好数据库结构,录入测试数据五条以上。
2、通过标准Statement语句对象,完成增删改查四个类编程。
三、实训器材 教学投影机一台、个人笔记本电脑一台、本地服务器一台(教师机)
四、实训步骤与结果
/** *功能:完成数据查询
*/ package com.ec;
import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; /** * @author xukang * */ public class SelectData {
/**
* @paramargs
*
*/
public static void main(String[] args) throws Exception{
Class.forName("com.mysql.jdbc.Driver");
String url="jdbc:mysql://localhost:3306/ECDB1?useSSL=false";
String user="root";
String password="12345678";
Connection conn=DriverManager.getConnection(url,user,password);
Statement st=conn.createStatement();
String sql="select * from ware";
ResultSet r=st.executeQuery(sql);
while (r.next()) {
System.out.println(r.getInt(1)+"\t"+r.getString(2)+"\t"+r.getFloat(3)+"\t"+r.getString(4)+"\t"+r.getString(5)+"\t"+r.getString(6));
}
r.close();
st.close();
conn.close();
// TODO Auto-generated method stub
} }
/** * 功能:完成数据插入工作
*/ package com.ec;
import java.net.PasswordAuthentication; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Statement; /** * @author xukang * */ public class InsetData {
/**
* @paramargs
*/ public static void main(String[] args) throws Exception{
Class.forName("com.mysql.jdbc.Driver");
String url="jdbc:mysql://localhost:3306/ECDB1?useSSL=false";
String user="root";
String password="12345678";
Connection conn=DriverManager.getConnection(url,user,password);
Statement st=conn.createStatement();
//关键点:查询---executeQuery() 增删改-----executeUpdate()/executeLargeUpdate()
String sql="insert into ware values(10,'蛋糕',100.0,'快乐','黄色','徐州')";
st.executeUpdate(sql);
// TODO Auto-generated method stub
st.close();
conn.close();
} }
/** *
*/ package com.ec;
import java.sql.Connection; import java.sql.DriverManager; import java.sql.Statement;
import org.omg.PortableInterceptor.USER_EXCEPTION;
import com.mysql.jdbc.Driver; /** * @author asus * */ public class UpdateData {
/**
* @param args
*/ public static void main(String[] args) throws Exception{
Class.forName("com.mysql.jdbc.Driver");
String url="jdbc:mysql://localhost:3306/ECDB1?useSSL=false";
String user="root";
String password="12345678";
Connection conn=DriverManager.getConnection(url,user,password);
Statement st=conn.createStatement();
String sql="update ware set name='飞机' where id=6";
st.executeUpdate(sql);
st.close();
conn.close();
// TODO Auto-generated method stub
} }
/** *
*/ package com.ec;
import java.sql.Connection; import java.sql.DriverManager; import java.sql.Statement; /** * @author xukang * */ public class DeleteData {
/**
* @paramargs
*/ public static void main(String[] args) throws Exception{
Class.forName("com.mysql.jdbc.Driver");
String url="jdbc:mysql://localhost:3306/ECDB1?useSSL=false";
String user="root";
String password="12345678";
Connection conn=DriverManager.getConnection(url,user,password);
Statement st=conn.createStatement();
String sql="delete from ware where id=10";
st.executeUpdate(sql);
st.close();
conn.close();
// TODO Auto-generated method stub
} }
五、分析与结论
针对实训的测试结果其中重要的结论如下:
通过扫描器课题的实训课程的学习,掌握了java基本扫描器工作原理、结构设计,形成了完整的java的认识,激发了对java的研究兴趣,同时通过该课程锻炼了自己的针对目标的学习能力、分析能力和动手能力。
北京联合大学
实训报告
课程(项目)名称: 数据库原理 学 院: 联大师范学院 专 业:计算机科学与技术 班 级: 10级1班 学 号: 2010020306133 姓 名: 蒋 丹 成 绩:
2012年 6 月 8 日
目录
1、概述........................................................................................ 错误!未定义书签。
2、总体设计................................................................................ 错误!未定义书签。
2.1、需求分析..................................................................... 错误!未定义书签。 2.
2、项目规划..................................................................... 错误!未定义书签。 2.3、系统功能架构图......................................................... 错误!未定义书签。
3、系统设计................................................................................ 错误!未定义书签。
3.1、设计目标..................................................................... 错误!未定义书签。 3.
2、开发及运行环境......................................................... 错误!未定义书签。 3.3、数据库设计................................................................. 错误!未定义书签。
3.3.1、系统E-R图...................................................... 错误!未定义书签。 3.3.
2、主要数据表的结构.......................................... 错误!未定义书签。
4、主要功能模块设计................................................................ 错误!未定义书签。
4.1、连接数据库................................................................. 错误!未定义书签。 4.
2、主窗体设计................................................................. 错误!未定义书签。 4.3、系统登录..................................................................... 错误!未定义书签。 4.
4、商品入库..................................................................... 错误!未定义书签。 4.5、库存盘点..................................................................... 错误!未定义书签。 4.
6、入库查询..................................................................... 错误!未定义书签。
5、结论........................................................................................ 错误!未定义书签。
6、参考资料................................................................................ 错误!未定义书签。
7、评语.......................................................................................................................... 4
2
7、评语
工作态度(认真、一般、较差),工作量(饱满、一般、不够),每个任务能够独立(完成、基本完成、在辅导下完成),程序运行结果(正确、基本正确、部分正确),实训报告格式(标准、一般)。创新意识(较强、一般、没有),运行所学知识解决实际问题的能力(强、一般、较差)。
优(100~90):能够熟练运用开发工具,编程解决实际问题,创意新颖,功能实现完善。
良(89~80):能够熟练运用开发工具,编程解决实际问题,有一定创新,功能实现较好。
中(79~70):能够较熟练使用开发工具,编程解决实际问题,独立完成实训,功能实现一般。
及格(69~60):能够运用开发工具,在教师辅导下完成实训,实现部分功能。 不及格(59~0):编程解决实际问题的能力差,功能实现较差。
实训成绩为: 分 教师签字:
12:update sc set grade=grade+5 where cno='c01' 运行结果:
13:delete sc where cno=(select cno from course where cname ='高等数学') 运行结果:
14:create unique index ind_cname on course(cname) 运行结果:
1:use school go create view avggrade as select s.sdept,avg(sc.grade) as'avggrade' from student s,sc sc where s.sno=sc.sno and sc.grade is not null group by s.sdept go select * from avggrade go
附件:
1、创建触发器
1、创建触发器trigger_9_1,实现当修改学生课程表(xskc)中的数据时,显示提示信息“学生课程表被修改了”。
在学生课程表上建立触发器,具体操作如下: 在查询分析器的查询窗口中,输入如下T-SQL语句: USE 学生成绩库 GO CREATE TRIGGER trigger_9_1 ON xskc FOR UPDATE AS
PRINT ‘学生课程表被修改了’ GO 执行后,在学生课程表上触发器trigger_9_1创建成功。
2、创建触发器trigger_9_3,实现当删除学生课程表中某门课程的记录时,对应学生成绩表中所有有关此课程的记录均删除。
可以在查询分析器的查询窗口中输入如下语句: USE 学生成绩库 GO CREATE TRIGGER trigger_9_3 ON xskc FOR DELETE AS
C程序设计 实训
DELETE xscj FROM xscj,deleted WHERE xscj.课程号=deleted.课程号 GO
3、创建触发器trigger_9_4,实现当修改学生课程表(xskc)中的某门课的课程号时,对应学生成绩表(xscj)中的课程号也作修改。
当修改学生课程表中记录时,相当于删除一条旧记录并插入一条新记录,删除的旧记录在deleted临时表中,插入的新记录在inserted临时表中。因此,可以通过在查询分析器的查询窗口中输入如下语句创建触发器:
USE 学生成绩库 GO CREATE TRIGGER trigger_9_4 ON xskc FOR UPDATE AS
IF update(课程号) BEGIN UPDATE xscj
SET 课程号=(SELECT 课程号 FROM inserted) FROM xscj,deleted WHERE xscj.课程号=deleted.课程号 END GO 我们可以通过修改某门课的课程号,来查看触发器是否被激发执行了。现在通
C程序设计 实训
过一个语句修改原课程号为“101”的学生课程表中的记录,将其课程号改为“111:”
UPDATE xskc SET 课程号=’111’ WHERE 课程号=’101’
然后,再查看一下学生成绩表中的记录。可以看到原来的“101”课程的课程号均改成了“111”,但课程名不变,还是“计算机文化基础”。
2、修改触发器
如果需要修改触发器的定义,只需一个操作即可除去并重新创建触发器,或重新定义已有触发器。
如果更改触发器引用的对象名,则必须修改触发器使其文本反映新的名称。因此,在重命名对象前,首先显示该对象的相关性,以确定所建议的更改是否会影响任何触发器。
也可以重命名触发器。新名称必须遵守标识符规则。您只能重命名自己拥有的触发器,而数据库所有者可以更改任意用户的触发器名称。需重命名的触发器必须位于当前数据库中。
可以使用ALTER TRIGGER语句修改触发器。
4、如果已通过例9.2创建了触发器trigger_9_2,现要对它进行修改,要求显示的提示信息改为“学生课程表中课程号为XXX的记录被修改了”。
可以在查询分析器的查询窗口中使用ALTER TRIGGER语句修改触发器,语句如下:
USE 学生成绩库
C程序设计 实训
GO ALTER TRIGGER trigger_9_2 ON xskc FOR UPDATE AS
DECLARE @kch char(3) SELECT @kch=课程号 FROM deleted PRINT ‘学生课程表中课程号为’+@kch+’的记录被修改了’ GO 触发器被修改,再执行下述更新语句: UPDATE xskc SET 学分=5 WHERE 课程号='101' 可以在结果窗格中,看到消息:“学生课程表中课程号为101的记录被修改了”。
3、删除触发器
当不再需要某个触发器时,可将其删除。当触发器被删除时,它所基于的表和数据并不受影响。删除表将自动删除其上的所有触发器。删除触发器的权限默认授予在该触发器所在表的所有者。
可以使用DROP TRIGGER语句删除触发器。
5、删除学生课程表上的触发器trigger_9_2。
在查询分析器的查询窗口中输入语句: DROP TRIGGER trigger_9_2 执行后,触发器即被删除。
C程序设计 实训
《数据库系统概论》实训报告
上机坏境:XP系统SQL Server Management Studio 2008
实训步骤:
一、表的建立
1·建立“供应商关系”S表
2·建立“关系零件” P表
3·建立“工程关系”J表
4·建立“供应关系”SPJ表
二、输入表的数据;
1·输入“供应商关系”S表数据:
2·输入“关系零件” P表数据:
3·输入“工程关系”J表数据:
4·输入“供应关系”SPJ表数据:
三、用SQL语句表达下列查询:
1·检索供应零件给编号为J1的工程的供应商编号SNO
2检索供应零件给工程J1,且零件编号为P1的供应商编号SNO
3查询全体工程的详细信息
4查询没有正余额的工程编号、名称及城市,结果按工程编号升序排列
5求使用零件数量在100与1000之间的工程的编号、零件号和数量
6、查询上海的供应商名称(假设供应商关系的SADDR列的值都以城市名开头)
7、求使用了P3零件的工程名
称
8、求供应零件给工程J1,且零件颜色为红色的供应商编号SNO
9、求至少使用了零件编号为P3和P5的工程编号JNO
10、求不使用编号为P3零件的工程编号JNO和名称JNAME
11、求使用了全部零件的工程名称
12、求至少用了供应商’S1’所供应的全部零件的工程号JNO
13、求供应P3零件的供应商个数
14求项目余额的最大值,最小值,总值和平均值,输出的列名分别为:MAX_NUMBER,MIN_NUMBER,SUM_NUMBER,AVG_NUMBER
15统计每个供应商供应不同零件的种数和供应总数量
16统计上海地区的项目使用零件的种数(超过3种)和零件总数量。要求查询结果按零件的种数升序排列,种数相同时按总数量降序排列。
17求不使用编号为P3零件的工程编号JNO和名称JNAME
18检索至少不使用P3和P5这两种零件的工程编号JNO
19查询最昂贵的零件单价
20查询至少使用了‘东方配件厂’一种零件的工程编号
四.心得体会 经过此次实训,认识到数据库是数据管理的最新技术,是计算机科学的重要分支。促进了信息的便捷管理和查询。在语句的查询中代码的准确性和语句的理解至关重要。
在老师的悉心教导和上机实验实践当中度过的,经过这次实训,让我们学习到了很多东西,让我们又多掌握了一项专业的技术,今后我们将更努力的学习这门课程,勤于实践,不断提高。