0. 本周课程设计发布

Java课程设计

1. 本周学习总结

1.1 以你喜欢的方式(思维导图或其他)归纳总结多数据库相关内容。

数据库基本操作(目前为止主要介绍了表的基本操作)

创建表

CREATE TABLE students(
stuno VARCHAR(21),
name VARCHAR(255),
age VARCHAR(11)
);

查看mysql创建表:

SHOW CREATE table students;

查看表所有的列:

SHOW FULL COLUMNS from students;

查看表中已经录入的信息

SELECT * from students;

删除表

DROP TABLE  students;

JDBC体系架构

2. 书面作业

1. MySQL数据库基本操作

建立数据库,将自己的姓名、学号作为一条记录插入。(截图,需出现自己的学号、姓名)

在自己建立的数据库上执行常见SQL语句(截图)

-参考:实验任务书-题目1

2. 使用JDBC连接数据库与Statement

2.1 使用Statement操作数据库。(粘贴一段你认为比较有价值的代码,出现学号)

//201521123057
conn = DriverManager.getConnection(URL,userName,password);
Statement statement = conn.createStatement();
ResultSet resultSet = statement.executeQuery(sql);
while(resultSet.next()){
int id = resultSet.getInt("id");
String stuno = resultSet.getString("stuno");
Date date = resultSet.getDate("birthdate");
System.out.print("id="+id+" stuno="+stuno+" birthdate="+date);

2.2 使用JDBC操作数据库主要包含哪几个步骤?

-参考:实验任务书-题目2

提供JDBC需要连接的URL
创建连接
conn = DriverManager.getConnection(URL,userName,password);
实例化Statement
Statement statement = conn.createStatement();
实例化结果集
ResultSet resultSet = statement.executeQuery(sql);
对结果集进行处理
while(resultSet.next()){...}
关闭资源
conn.close()

3. PreparedStatement与参数化查询

3.1 使用PreparedStatement根据用户指定的查询条件进行查询。(粘贴一段你认为比较有价值的代码,出现学号)

//201521123057
try {
con = DriverManager.getConnection(url,userName, password); String strSql = "insert into students(stuno,...) values(?,...)";
pStatement = con.prepareStatement(strSql);
pStatement.setString(1, "20150111");
...
pStatement.close(); strSql = "select * from students where Id < ?";
pStatement = con.prepareStatement(strSql);
pStatement.setInt(1, 10);
rs = pStatement.executeQuery(); strSql = "select * from students";
rs = pStatement.executeQuery(strSql); } catch (SQLException se) {
se.printStackTrace();
}

3.2 批量更新-批量插入1000个学生,统计整个操作所消耗的时间。(使用方法executeBatch)

参考:实验任务书-题目3

			con = DriverManager.getConnection(url,userName, password);
con.setAutoCommit(false);
String strSql = "insert into students(stuno,name,age) values(?,?,?)";
pStatement = con.prepareStatement(strSql);
long time=System.currentTimeMillis();
for(int i=0;i<1000;i++){
pStatement.setString(1, "201521123xxx");
pStatement.setString(2, "xxx");
pStatement.setString(3, "2x");
pStatement.addBatch(); } pStatement.executeBatch();
con.commit();
long time1=System.currentTimeMillis();
System.out.println("插入1000条数据耗时:"+(time1-time)+"ms");
pStatement.close();



4. JDBCUtil与DAO

4.1 粘贴一段你认为比较有价值的代码,出现学号

//201521123057
JDBC工具:
public static Connection getConnection() throws SQLException {
Connection conn = null;
System.out.println("正在连接数据库...");
conn = DriverManager.getConnection(url, userName, password);
System.out.println("数据库已连接!");
return conn; } public static void closeConnection(Connection conn) {
System.out.println("正在释放所有资源..."); if (conn != null) {
try {
conn.close();
conn = null;
} catch (SQLException e) {
e.printStackTrace();
}
}
} public static void main(String[] args) {
try {
conn = JDBCUtil.getConnection();
stat = conn.createStatement();
ResultSet rs = stat.executeQuery(sql);
while(rs.next()){
...
}
}catch (SQLException sqle) {
sqle.printStackTrace();
}catch(Exception e){
e.printStackTrace();
}finally{
JDBCUtil.closeConnection(conn);
}
} DAO(data access objects)模式:
public interface StudentDao {
public boolean writeStudent(Student student);
public Student readStudent(String name);
public List<Student> getAllStudents();
public void diplayAllStudent();
}
public class TestMain { public static void main(String[] args) {
StudentDao sdm = new StudentDaoArrayImpl(50);
//StudentDao sdm = new StudenDaoListImpl();
//StudentDao sdm = new StudentDaoJDBCImpl();
...
}
public class StudentDaoArrayImpl implements StudentDao { private Student[] students;
private int size=80;
//实现StudentDao中的各个抽象方法
}

4.2 使用DAO模式访问数据库有什么好处?

参考:实验任务书-题目5

层次分明,思路清晰,方便维护

5. 使用数据库改造购物车系统

5.1 使用数据库改造以前的购物车系统(应有图形界面)。如果以前为完成购物车系统,可编写基于数据库的学生管理系统。包括对学生的增删改查,要求使用。

//学生管理系统

        public class Person {
private int id;
private String name;
private int age;
} gettter setter{
...
} @Override
public String toString() {
return "Stu [id=" + id + ", name=" + name + ", age=" + age + "]";
}
} //连接数据库
public static Connection getConnection() throws Exception{
String URL = "jdbc:mysql://localhost:3306/test";
String driverName = "com.mysql.jdbc.Driver";
String driverClass=null;
String sql = "select * from students"; InputStream in=
TestConnection.class.getClassLoader().getResourceAsStream("jdbc.properties"); Properties properties=new Properties();
properties.load(in); driverClass=properties.getProperty("driverName");
Driver driver=(Driver)Class.forName(driverClass).newInstance();
Properties info=new Properties();
info.put("user", "root");
info.put("password", "123456");
Connection connection=driver.connect(URL, info);
return connection;
} public static void testStatement(String sql) throws Exception{
Connection connection=null;
Statement statement=null;
try {
String sql="insert into test(id,name,age) + "values(?,?,?)"";
connection=getConnection();
statement=connection.createStatement();
statement.executeUpdate(sql); } catch (Exception e) {
e.printStackTrace();
}finally{
if(statement!=null){
statement.close();
}
if(connection!=null){
connection.close();
}
} //增
public static void insert() throws Exception{
Person person=new Person();
System.out.println("请输入ID号:");
int id=input.nextInt();
person.setId(id); System.out.println("请输入学生姓名:");
String name=input.next();
person.name(name); System.out.println("请输入学生年龄:");
int age=input.nextInt();
person.setAge(age); String sql="insert into test "
+ "values("+person.setId()
+","+person.name()
+","+person.setAge()+")"; TestConnection.testStatement(sql);
System.out.println("该学生信息输入成功!!");
} //查
public static void select() throws Exception{
Person person=new Person();
System.out.println("请输入要查询的学号:");
String eId=input.next();
String sql="select id,name,age "
+ "from test where id='"+id+"'";
System.out.println("ID"+"\t"
+"Name"+"\t"
+"Age"); testResultSet(sql);
if(bb!=true){
System.out.println("输入的学生的学号不存在!!");
}
} //删
public static void delect() throws Exception{
System.out.println("请输入要删除学生的学号:");
String eId=input.next();
String sql="delete from test where id='"+eId+"'";
String sql1="select id,name,age"
+ " from test where id='"+eId+"'"; testResultSet(sql1);
if(bb!=false){
System.out.println("您确定要删除该学生的信息吗??");
System.out.println("1.确定----0.取消");
int n=input.nextInt();
switch(n){
case 1:testStatement(sql);
System.out.println("删除成功!!");
break;
case 0:break;
default :System.out.println("输入错误!!");
}
}
else{
System.out.println("要删除的学生的学号不存在!!!");
}
} //改
public static void update() throws Exception{
System.out.println("请输入要修改信息学生的学号:");
String eId=input.next();
System.out.println("请输入要修改属性的值是:");
String newId=input.next();
String sql1="select id,name,age"
+ " from test where where id='"+id+"'";
String sql="update test set newId='"+newId+"' where id='"+eId+"'";
testResultSet(sql1);
if(bb!=false){
System.out.println("您确定要修改该学生的信息吗??");
System.out.println("1.确定----0.取消");
int t=input.nextInt();
switch(t){
case 1:testStatement(sql);
System.out.println("修改成功!!");
break;
case 0:break;
default :System.out.println("输入错误!!");
}
}
}

5.2 相比较使用文件,使用数据库存储与管理数据有何不一样?

1、文件系统作为一个统一的信息管理机制,具有下述功能:
①统一管理文件存储空间(即外存),实施存储空间的分配与回收。
②确定文件信息的存放位置及存放形式。
③实现文件从名字空间到外存地址空间的映射,即实现文件的按名存取。
④有效实现对文件的各种控制操作(如建立、撤销、打开、关闭文件等)和存取操作(如读、写、修改、复制、转储等)。
2、数据库管理系统,是指为数据库的建立,使用和维护而配置的软件,功能包括定义表,在表中增加,修改,删除数据,同时还提供灵活的查询数据的功能.而这些功能可以被高级语言调用.利用高级语言及其开发工具,同时调用数据库管理系统提供的功能,我们可以编制程序实现对我们日常工作中大量的非数值的数据进行管理

3. 码云

3.1. 码云代码提交记录

在码云的项目中,依次选择“统计-Commits历史-设置时间段”, 然后搜索并截图

201521123057《Java程序设计》第14周学习总结的更多相关文章

  1. 2018面向对象程序设计(Java)第14周学习指导及要求

    2018面向对象程序设计(Java)第14周学习指导及要求(2018.11.29-2018.12.2)   学习目标 (1) 掌握GUI布局管理器用法: (2) 掌握各类Java Swing组件用途及 ...

  2. 面向对象程序设计(JAVA) 第14周学习指导及要求

    2019面向对象程序设计(Java)第14周学习指导及要求 (2019.11.29-2019.12.2)   学习目标 (1)掌握GUI布局管理器用法: (2)掌握Java Swing文本输入组件用途 ...

  3. 20145213《Java程序设计》第二周学习总结

    20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...

  4. 21045308刘昊阳 《Java程序设计》第九周学习总结

    21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...

  5. 201521123038 《Java程序设计》 第九周学习总结

    201521123038 <Java程序设计> 第九周学习总结 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 2. 书面作业 本次PTA作业题集异常 ...

  6. 20155303 2016-2017-2 《Java程序设计》第二周学习总结

    20155303 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 『注意』 "//"为单行批注符: "/*"与&quo ...

  7. 20175221 2018-2019-2 《Java程序设计》第一周学习总结

    20175221 2018-2019-2 <Java程序设计>第一周学习总结 教材学习内容总结 本周通过观看书本配套视频,学到了如解释器,编译器等一些简单概念. 还懂得了java的一些简单 ...

  8. 20175314 《Java程序设计》第九周学习总结

    20175314 <Java程序设计>第九周学习总结 教材学习内容总结 根据课本的介绍下载了MySQL和Navicat for MySQL并成功对后者进行破解 MySQL客户端管理工具(如 ...

  9. 20175314 《Java程序设计》第二周学习总结

    20175314 <Java程序设计>第二周学习总结 教材学习内容总结 我在APPstore上发现了一个可以支持我们在IOS系统上学习实践Java程序的开发环境,只需要购买专业版就可以使用 ...

  10. 20155312 2016-2017-2 《Java程序设计》第九周学习总结

    20155312 2016-2017-2 <Java程序设计>第九周学习总结 课堂内容总结 两个类有公用的东西放在父类里. 面向对象的三要素 封装 继承 多态:用父类声明引用,子类生成对象 ...

随机推荐

  1. linux几个重要的按键

    我们在用Windows系统时,有没有感觉快键键让我们工作更有效率,在Linux系统中仍有很好用的快捷键,这些快捷键可以辅助我们进行指令的编写与程序的中断呢,下面介绍几个经常用到的快捷键. 一.Tab- ...

  2. JavaScript入门(二)

    一.JS中的运算符 1.算术运算(单目运算符) + 加.-减.*乘. /除. %取余.++自增运算符 .--自减运算符; >>>+:有两种作用,链接字符串/加法运算符.当+两边全为数 ...

  3. 对lea与mov的理解

    lea不止可以完成mov的功能,他还可以加载存储器的有效地址,即D<-&S 借鉴深度理解计算机系统里: 指令Leal实际上是movl指令的变形.他的指令形式是从存储器读数据到寄存器,但实 ...

  4. SQL笔记 --- 数据库设计步骤(转)

    SQL笔记 --- 数据库设计步骤 目录 总体设计过程需求分析概念结构设计逻辑结构设计数据库物理设计数据库实施数据库运行和维护 总体设计过程 0 » 下一篇:vim 命令集 posted @ 2012 ...

  5. Struts2学习笔记(六)——Action处理请求参数

    在struts2框架中关于Action处理请求参数有两种方案(三个方式),表单属性的名称应该和在Action类中定义的成员属性或者在JavaBean中定义的成员属性名称一样: 1.属性驱动 1)直接在 ...

  6. python 学习网站

    python 文档库 docs.python.org/2/library/index.html python 第三方模块查找 pypi.python.org

  7. 【Linux SELinux】提升系统安全(一)

    本文重点:了解SELinux并能够熟练地启动关闭selinux(就像精通windows系统开关机一样) 背景:在centos5.x之后,selinux 非常完备地成为了系统内核模块,centos5.x ...

  8. Andrew Ng机器学习课程笔记--week9(下)(推荐系统&协同过滤)

    本周内容较多,故分为上下两篇文章. 本文为下篇. 一.内容概要 1. Anomaly Detection Density Estimation Problem Motivation Gaussian ...

  9. latex插图续

    LaTeX中一般只直接支持插入eps(Encapsulated PostScript)格式的图形文件, 因此在图片插入latex文档之前应先设法得到图片的eps格式的文件.  UNIX下的各种应用软件 ...

  10. The C++ Programming Language 学习笔记 第6章 表达式和语句

    1.关于strcpy函数. 书中说c风格的字符串尽量少用,strcpy这样的函数应该也要少用.这里讲这个函数主要是要通过本章课后练习第十题来讲一下前面提及的要点.巩固一下前几章的知识.写了一段,本来感 ...