• 201521123044 《Java程序设计》第14周学习总结


    1. 本章学习总结

    1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容。
    友情提示:导图用ctrl+鼠标滚轮放大看更清楚些

    2. 书面作业

    1. MySQL数据库基本操作

    建立数据库,将自己的姓名、学号作为一条记录插入。(截图,需出现自己的学号、姓名)
    在自己建立的数据库上执行常见SQL语句(截图)
    -参考:实验任务书-题目1
    显示当前数据库服务器中的数据库列表:

    使用数据库前要先选择数据库:

    显示数据库中的数据表:

    创建数据库:

    删除数据库:

    查看当前打开的数据库:

    插入数据:

    显示表中的记录:

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

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

    • 2.1使用Statement操作数据库。(粘贴一段你认为比较有价值的代码,出现学号)
    try {
    			//201521123044
    			conn = DriverManager.getConnection(URL,userName,password);
    			Statement statement = conn.createStatement();
    			ResultSet resultSet = statement.executeQuery(sql);
    			// id | stuno     | name | gender | birthdate  | major
    			while(resultSet.next()){
    				String stuno = resultSet.getString("stuno");
    				String name = resultSet.getString("name");
    				Date date = resultSet.getDate("birthdate");
    				System.out.print(" stuno= "+stuno+" name= "+name+" birthdate="+date);
    			}
    		} catch (SQLException e) {
    			e.printStackTrace();
    		}finally{
    			if(conn!=null)
    				try {
    					conn.close();
    				} catch (SQLException e) {
    					e.printStackTrace();
    				}
    			conn = null;
    		}		
    	}
    
    • 2.2使用JDBC操作数据库主要包含哪几个步骤?
      通过一段代码来展示JDBC操作数据库主要步骤:
     try {  
                // 1、加载数据库驱动( 成功加载后,会将Driver类的实例注册到DriverManager类中)  
                Class.forName(driver );  
                // 2、获取数据库连接  
                conn = DriverManager.getConnection(url, username, password);  
                // 3、获取数据库操作对象  
                stmt = conn.createStatement();  
                // 4、定义操作的SQL语句  
                String sql = "select * from user where id = 100";  
                // 5、执行数据库操作  
                rs = stmt.executeQuery(sql);  
                // 6、获取并操作结果集  
                while (rs.next()) {  
                    System.out.println(rs.getInt("id"));  
                    System.out.println(rs.getString("name"));  
                }  
            } catch (Exception e) {  
                e.printStackTrace();  
            } finally {  
                // 7、关闭对象,回收数据库资源  
                if (rs != null) { //关闭结果集对象  
                    try {  
                        rs.close();  
                    } catch (SQLException e) {  
                        e.printStackTrace();  
                    }  
                }  
                if (stmt != null) { // 关闭数据库操作对象  
                    try {  
                        stmt.close();  
                    } catch (SQLException e) {  
                        e.printStackTrace();  
                    }  
                }  
                if (conn != null) { // 关闭数据库连接对象  
                    try {  
                        if (!conn.isClosed()) {  
                            conn.close();  
                        }  
                    } catch (SQLException e) {  
                        e.printStackTrace();  
                    }  
                } 
         }
    

    3.PreparedStatement与参数化查询

    • 3.1 使用PreparedStatement根据用户指定的查询条件进行查询。(粘贴一段你认为比较有价值的代码,出现学号)
      关键代码:
    //根据参数查询数据
    			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);
    			
    			System.out.println("id	编号 		学号	姓名	年龄		专业");
    			while(rs.next()){
    				
    				//通过列的下标(index)取数据
    				System.out.print(rs.getInt(1)+"	");
    				System.out.print(rs.getInt(2)+"	");
    				System.out.print(rs.getString(3)+"	");
    				System.out.print(rs.getInt(4)+"	 ");
    				System.out.println(rs.getString(6));
    	
    			//(或者)通过列名取数据(这种方式取数据会更直观)
    				/*System.out.println(rs.getInt("id"));
    				System.out.println(rs.getString("stuno"));
    				System.out.println(rs.getString("name"));
    				System.out.println(rs.getInt("age"));
    				System.out.println(rs.getString("major"));*/
    			}
    			pStatement.close();//立即释放资源
    
    • 3.2 批量更新-批量插入1000个学生,统计整个操作所消耗的时间。对比普通方法插入与使用executeBatch方法所消耗的时间。(使用JUint4测试,需要出现时间对比截图)

    4.JDBCUtil与DAO

    • 4.1 粘贴一段你认为比较有价值的代码,并说明为什么要摘取这段代码。出现学号
    //201521123044
    public static void main(String[] args) {
    		Connection conn = null;
    		Statement stat = null;
    		String sql = "select * from user";//表中有id和name这列
    		try {
    			conn = JDBCUtil.getConnection();
    			stat = conn.createStatement();
    			ResultSet rs = stat.executeQuery(sql);
    			while(rs.next()){
    				int id = rs.getInt("id");
    				String name = rs.getString("name");
    				System.out.format("该记录的id=%d,姓名=%s
    ",id,name);
    			}
    		}catch (SQLException sqle) {
    			sqle.printStackTrace();
    		}catch(Exception e){
    			e.printStackTrace();
    		}finally{
    			JDBCUtil.closeConnection(conn);
    		}
    	}
    }
    
    • 4.2 使用DAO模式访问数据库有什么好处?
      ①将获得连接与释放连接的操作封装起来,提供访问数据库的统一入口
      ②Dao接口(将接口与实现相分离)
      例:studentDao接口与各实现类的关系
      ③DAO模式的使用相当于建立一个接口,接口中定义了此应用程序中将会用到的所有方法。在程序中,当需要和数据进行交互的时候则使用这个接口,并且编写一个单独的类来实现这个接口上的方法,代码之间的板块分配很清晰,而且在后期对程序的修改,只需对DAO模式中的某个方法修改即可,不需要整个项目都进行修改。

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

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

      增加商品:

      删除商品:

    • 5.2 相比较使用文件,使用数据库存储与管理数据有何不一样?
      数据库存储:方便管理,并且读取速度快效率高,容量极大。最关键最关键的还是快这个优势,如果是简单的数据存储,那用excel就可以,但作为一些软件的后台数据管理,就必须利用数据库进行操作。
      文件存储:使用文件存储与管理,硬盘空间浪费严重,容易造成数据的不一致;把数据组织成相互独立的数据文件,整体无结构;

  • 相关阅读:
    巧妙设备MTU的大小,轻松提网速
    BackTrack5 (BT5)无线password破解教程之WPA/WPA2-PSK型无线password破解
    给程序猿简历的一些建议
    servlet的抽取
    BeanUtils工具类
    保存密码操作
    The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.
    java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
    Wed Nov 01 13:03:16 CST 2017 WARN: Establishing SSL connection without server's identity verification is not recommended.
    修改web项目的启动页
  • 原文地址:https://www.cnblogs.com/Min21/p/6915656.html
Copyright © 2020-2023  润新知