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. Silverlight——施工计划日报表(二)

    近来一直在加班,基本上没有个人时间.所以更新不会很即时. 长话短说,先从界面代码开始吧.界面代码很简单,如下所示: <UserControl xmlns:sdk="http://sch ...

  2. ABP从入门到精通(5):使用基于JWT标准的Token访问WebApi

    项目:asp.net zero 4.2.0 .net core(1.1) 版本 我们做项目的时候可能会遇到需要提供api给app调用,ABP动态生成的WebApi提供了方便的基于JWT标准的Token ...

  3. 一起学ASP.NET Core 2.0学习笔记(一): CentOS下 .net core2 sdk nginx、supervisor、mysql环境搭建

    作为.neter,看到.net core 2.0的正式发布,心里是有点小激动的,迫不及待的体验了一把,发现速度确实是快了很多,其中也遇到一些小问题,所以整理了一些学习笔记: 阅读目录 环境说明 安装C ...

  4. mysql my.ini配置文件修改无效,修改mysql默认字符集

    问题 开始于 使用mysql命令插入中文数据插不进去 ERROR 1366 (HY000): Incorrect string value: '\xD6\xD0\xCE\xC4' for column ...

  5. Struts2学习笔记(十一)——文件上传

    1.单文件上传 单文件上传步骤: 1)创建上传jsp页面 文件上传的表单提交方式必须是POST方式,编码类型:enctype="multipart/form-data",默认是 a ...

  6. Tomcat8安装及配置教程

    Apache  Tomcat8.0安装及配置教程.. Apache  Tomcat8.0官方网站链接:http://tomcat.apache.org/ apache-tomcat-8.0.39-wi ...

  7. spring学习笔记1

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAATQAAAEBCAIAAAB5VM7WAAAgAElEQVR4nOy9Z3gc13n3zZT3efPESZ

  8. [Caffe]史上最全的caffe安装过程

    Linux下的GPU版Caffe安装方法 系统环境:Ubuntu 14.04LTS + NV TitanX 1.1 (可选)显卡驱动的安装(有风险) 如果需要重装,需要先卸载已有版本 sudo apt ...

  9. python tkinter学习——tkinter部件1

    tkinter部件 一.Tk() & Label() & Button() 1,Tk() 窗口 用Tk()创建窗口对象: #文件名:test1.py import tkinter as ...

  10. ThreadLocal类分析

    首先试想一个场景: 多个线程都要访问数据库,先要获得一个Connection,然后执行一些操作.为了线程安全,如果用synchronized锁定一个Connection对象,那么任何时候,都只有一个线 ...