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. 多线程(五) java的线程锁

    在多线程中,每个线程的执行顺序,是无法预测不可控制的,那么在对数据进行读写的时候便存在由于读写顺序多乱而造成数据混乱错误的可能性.那么如何控制,每个线程对于数据的读写顺序呢?这里就涉及到线程锁. 什么 ...

  2. python---------函数练习题

    2.写函数,,用户传入修改的文件名,与要修改的内容,执行函数,完成整个文件的批量修改操作 # 方法一 # import os # def fun(): #y为要修改的内容,z为修改的结果 # y=in ...

  3. .net到Java那些事儿--整合SSH

    一.介绍       整体介绍分成两个部分,第一.net转到Java的原因,第二开发SSH时候的环境介绍:       .net到Java的原因: .net开发也将近快3年的样子,加上现在的老东家换过 ...

  4. JS模拟类的实现

    http://www.ruanyifeng.com/blog/2012/07/three_ways_to_define_a_javascript_class.html

  5. wmic 获得系统硬件信息

    wmic扩展了wmi系统管理指令,提供了命令行接口和批处理执行系统管理的工具.通过别名机制将命令转为对wmi命名空间的操作 1.获得cpu信息 2.获得cpu 核数 3.获得内存条信息

  6. ReactiveSwift源码解析(十二) MutableProperty基本代码实现

    前两篇博客我们分别聊了ReactiveSwift框架中的负责标记对象的生命周期的类Lifetime以及负责原子性操作的Atomic类的具体代码实现.前两篇博客之所以聊Lifetime以及Atomic的 ...

  7. 编写第一个spring MVC程序

    一.下载和安装spring框架 进入http://repo.springsource.org/libs-release-local/org/springframework/spring/4.2.0.R ...

  8. MySql COUNT(),SUM()组合用法

    需求:统计工作室表的数量,按创建时间分组 问题:按创建时间分组,如何将计数后的结果求和 解决:用COUNT(DISTINCT col_name)讲每行计数为1,再求和分组 SELECT DATE_FO ...

  9. React渲染问题研究以及Immutable的应用

    写在前面 这里主要介绍自己在React开发中的一些总结,关于react的渲染问题的一点研究. 另外本人一直希望在React项目中尝试使用,因此在之前已经介绍过immutable的API,可以参看这里I ...

  10. Json简介1

    使用Notepad++编程: <!DOCTYPE html><html><head><meta charset="UTF-8">&l ...