• 201521123038 《Java程序设计》 第十四周学习总结


    201521123038 《Java程序设计》 第十四周学习总结


    1. 本周学习总结

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

    • 接口
    • DriverManager:加载驱动、建立连接
    • Connection:数据库连接
    • Statement:处理连接中的SQL语句
    • ResultSet:处理结果集
    • 释放资源顺序
    • ResultSet
    • Statement
    • Connection
    • PreparedStatement比普通的Statement对象使用起来更加灵活,更有效率,多次执行sql语句时建议使用

    • 多次对数据库进行操作,可以将获得连接与释放连接的操作封装起来,提供访问数据库的统一入口


    2. 书面作业

    1. MySQL数据库基本操作

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

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


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

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

    • 查询表内记录数量
    
    	//201521123038
    	sql = "select count(*) from students";
    	rs = statement.executeQuery(sql);
    	if(rs.next()){
    		resultNum = rs.getInt(1);
    		System.out.println("数据库存在"+resultNum+"条记录数据库");
    	}
    
    
    
    • 警告提示Establishing SSL connection without server's identity verification is not recommended,原因是就是使用JDBC和数据库连接时,JDBC版本与MySQL版本不兼容,MySQL的版本更高一些。

    • String URL = "jdbc:mysql://localhost:3306/test";修改为String URL = "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=GBK&useSSL=false";

    运行结果:

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

    • 装载JDBQ驱动,使用 Class.forName(driverName),jdbc4.0不需要手动加载
    • 创建数据库的连接(Connection)
    • 创建SQL语句(Statement)
    • 通过语句获得结果集(ResultSet)
    • 处理结果集
    • 关闭JDBC对象,释放资源

    3. PreparedStatement与参数化查询

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

    • 查找语句
    
    	//201521123038
    	System.out.println("
    查找major=ne
    ");
    	strSql = "select * from students where major = ?";
    	pStatement = con.prepareStatement(strSql);
    	pStatement.setString(1, "ne");
    	rs = pStatement.executeQuery();
    	System.out.println("学号		姓名	出生日期		专业");
    	while(rs.next()){
    					
    		System.out.print(rs.getString("stuno")+"		");
    		System.out.print(rs.getString("name")+"	");
    		System.out.print(rs.getDate("birthdate")+"	");
    		System.out.print(rs.getString("major")+"	
    ");	
    	}
    
    
    
    • 取数据有通过列的下标取数据和通过列名取数据两种方法,最好使用后者

    运行结果:

    3.2 批量更新-批量插入1000个学生,统计整个操作所消耗的时间。对比普通方法插入与使用executeBatch方法所消耗的时间。(使用JUint4测试,需要出现时间对比截图)

    时间对比:


    4. JDBCUtil与DAO

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

    
    	//201521123038
    	@Override
    	public int add(Student student) {
    		Connection conn = null;
    		PreparedStatement pstat = null;
    		String sql = "insert into students(id,name) values(?,?) ";
    		int result = -1;
    		
    		try {
    			conn = JDBCUtil.getConnection();//建立连接
    			pstat = conn.prepareStatement(sql);
    			pstat.setInt(1, student.getId());
    			pstat.setString(2, student.getName());
    			result = pstat.executeUpdate();
    			
    		}catch (SQLException sqle) {
    			sqle.printStackTrace();
    		}catch(Exception e){
    			e.printStackTrace();
    		}finally{
    			JDBCUtil.realeaseAll(null,pstat, conn);
    		}
    		return result>0?1:-1;
    	}
    
    

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

    • 创建JDBCUtil,将获得连接与释放连接的操作封装起来,提供访问数据库的统一入口。在进行主要操作的时候不用编写处理数据库的全部代码,避免出错,增加代码的安全性。
    • 创建Dao接口,实现面向接口编程,可以有不同的实现类。

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

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

    diplayAllStudent代码,其他功能都大同小异:

    运行结果:

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

    • 文件管理容易发生因操作失误导致的文件删除或者内容更改,相较之下数据库安全性更高
    • 数据库处理数据比文件处理效率更高,例:制作APP需要庞大的后台数据,使用文件不方便管理,一般大型开发都要使用数据库存储
    • 写入数据时使用文件虽然比使用数据库操作代码方便,但是查询和统计文件中的数据不如使用数据库方便

    3. 码云

    3.1. 码云代码提交记录

  • 相关阅读:
    Visual Studio使用Git忽略不想上传到远程仓库的文件
    使用git处理github中提交有冲突的pull request
    C#基础访问修饰符概述
    从代码角度理解NNLM(A Neural Probabilistic Language Model)
    命名实体识别数据预处理
    基于bert命名实体识别(一)数据处理
    transformer多头注意力的不同框架实现(tensorflow+pytorch)
    基于tensorflow的bilstm_crf的命名实体识别(数据集是msra命名实体识别数据集)
    python实现命名实体识别指标(实体级别)
    基于tensorflow的文本分类总结(数据集是复旦中文语料)
  • 原文地址:https://www.cnblogs.com/sakurai3104/p/6913310.html
Copyright © 2020-2023  润新知