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


    本次作业参考文件

    1. 本周学习总结

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

    MySql数据库简单操作:
    库操作:
    显示所有数据库: show databases;
    创建数据库: create database test;
    删除数据库: drop database test;
    连接数据库: use test;
    查看当前连接的数据库: select database();
    当前数据库包含的表: show tables;
    删除表 drop table students;
    插入数据 insert into students...

    JDBC编程一般步骤
    1.与数据库建立连接(Connection)
    2.向数据库发送SQL语句(statement)
    3.获得和处理查询或更新语句返回的结果
    4.关闭连接,释放资源

    使用PreparedStatement操作数据库
    使用addBatch()来收集SQL
    使用executeBatch()批量执行

    2. 书面作业

    1.MySQL数据库基本操作

    建立数据库,将自己的姓名、学号作为一条记录插入。(截图,需出现自己的学号、姓名)
    在自己建立的数据库上执行常见SQL语句(截图)

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

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

    2.1 使用Statement操作数据库。(粘贴一段你认为比较有价值的代码,出现学号)
    大同小异,最关键的还是这个套路

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

    1.注册驱动

    2.创建连接

    3.通过连接创建语句

    4.通过语句获得结果集

    5.处理结果集

    6.释放资源

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

    3.PreparedStatement与参数化查询

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

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

    long st1=System.currentTimeMillis();
    for(int i;i<1000;i++){
    	String s1="insert into students(stuno,name,age) values(?,?,?)";
    	ps=con.prepareStatement(s1);
    	ps.setString(1,"2015002");
    	ps.setString(2,"linlin");
    	ps.setString(3,20);
    	ps.executeUpdate();
    }
    long et1=System.currentTimeMillis();
    System.out.println("普通方式的时间:"+(et1-st1)+"ms");
    
    long st2=System.currentTimeMillis();
    for(int i;i<1000;i++){
    	String s1="insert into students(stuno,name,age) values(?,?,?)";
    	ps=con.prepareStatement(s1);
    	ps.setString(1,"2015002");
    	ps.setString(2,"linlin");
    	ps.setString(3,20);
    	ps.addBatch();
    	ps.executeUpdate();
    }
    ps.executeBatch();
    long et2=System.currentTimeMillis();
    System.out.println("批量方式的时间:"+(et1-st1)+"ms");
    

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

    4.JDBCUtil与DAO

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

    public int add(Student stu) {
            // TODO Auto-generated method stub
            Connection conn = null;
            PreparedStatement pstat = null;
            String sql = "insert into student(id,name) values(?,?) ";
            int result = -1;
            try {
                conn = JDBCUtil.getConnection();
                pstat = conn.prepareStatement(sql);
                pstat.setInt(1, stu.getId());
                pstat.setString(2, stu.getName());
                result = pstat.executeUpdate();
                
            }catch (SQLException sqle) {
                sqle.printStackTrace();
            }catch(Exception e){
                e.printStackTrace();
            }finally{
                JDBCUtil.realeaseAll(null,pstat, conn);
            }
            return result;
        }
    
    public int delete(int sid) {
            // TODO Auto-generated method stub
            Connection conn = null;
            PreparedStatement pstat = null;
            String sql = "delete from student where id=?";
            int result = -1;
            
            try {
                conn = JDBCUtil.getConnection();
                pstat = conn.prepareStatement(sql);
                pstat.setInt(1, sid);
                result = pstat.executeUpdate();
                
            }catch (SQLException sqle) {
                sqle.printStackTrace();
            }catch(Exception e){
                e.printStackTrace();
            }finally{
                JDBCUtil.realeaseAll(null,pstat, conn);
            }
            return result;
        }
    
    
     public int update(Student stu) {
            // TODO Auto-generated method stub
            Connection conn = null;
            PreparedStatement pstat = null;
            String sql = "update student set age=? where id=?";//表中有id和name这列
            int result = -1;
            
            try {
                conn = JDBCUtil.getConnection();
                pstat = conn.prepareStatement(sql);
                pstat.setString(1,stu.getName());
                pstat.setInt(2, stu.getId());
                result = pstat.executeUpdate();
                
            }catch (SQLException sqle) {
                sqle.printStackTrace();
            }catch(Exception e){
                e.printStackTrace();
            }finally{
                JDBCUtil.realeaseAll(null,pstat, conn);
            }
            return result;
        }
    
    
        public List<Student> findAll() {
            // TODO Auto-generated method stub
            Connection conn = null;
            Statement stat = null;
            ResultSet rs = null;
            Student stu=null;
            List<Student> students=new ArrayList<Student>();
            String sql = "select * from student"//表中有id和name这列
            try {
                conn = JDBCUtil.getConnection();
                stat = conn.createStatement();
                rs = stat.executeQuery(sql);
                while(rs.next()){
                    stu=new Student(rs.getInt("id"),rs.getString("name"));
                    students.add(stu);
                }
            }catch (SQLException sqle) {
                sqle.printStackTrace();
            }catch(Exception e){
                e.printStackTrace();
            }finally{
                JDBCUtil.realeaseAll(rs,stat, conn);
            }
            return students;
        }
    
        public Student findById(String sid) {
            // TODO Auto-generated method stub
            Connection conn = null;
            PreparedStatement pstat = null;
            ResultSet rs = null;
            String sql = "select * from student where id=?";
            Student student = null;
            try {
                conn = JDBCUtil.getConnection();
                pstat = conn.prepareStatement(sql);
                pstat.setString(1, sid);
                rs = pstat.executeQuery();
                while(rs.next()){
                    student = new Student(rs.getInt("id"),rs.getString("name"));
                }
            }catch (SQLException sqle) {
                sqle.printStackTrace();
            }catch(Exception e){
                e.printStackTrace();
            }finally{
                JDBCUtil.realeaseAll(rs,pstat, conn);
            }
            return student;
        }
    
        public List<Student> findByName(String name) {
            // TODO Auto-generated method stub
            Student student = null; 
            Connection conn = null;
            PreparedStatement pstat = null;
            ResultSet rs = null;
            Student stu=null;
            List<Student> students=new ArrayList<Student>();
            String sql = "select * from students where name like '?%'";
            try {
                conn = JDBCUtil.getConnection();
                pstat = conn.prepareStatement(sql);
                pstat.setString(1, name);
                rs = pstat.executeQuery();
                while(rs.next()){
                    stu=new Student(rs.getInt("id"),rs.getString("name"));
                    students.add(stu);
                }
            }catch (SQLException sqle) {
                sqle.printStackTrace();
            }catch(Exception e){
                e.printStackTrace();
            }finally{
                JDBCUtil.realeaseAll(rs,pstat, conn);
            }
            return students;
        }
    }
    

    4.2 使用DAO模式访问数据库有什么好处?
    省去了很多重复的代码

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

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

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

    	private void aboutButtonActionPerformed(java.awt.event.ActionEvent evt) {
    
    		aboutDialog.setVisible(true);
    		aboutDialog.pack();
    	}
    
    	private void addButtonActionPerformed(java.awt.event.ActionEvent evt) {
    		String name = namejTextField1.getText();
    		String price = pricejTextField2.getText();
    		Double price1 = Double.parseDouble(price);
    		String num = numjTextField3.getText();
    		int num1 = Integer.parseInt(num);
    		Connection con = null;
    		PreparedStatement pstat = null;
    		String sql = "insert into cart(name,price,num) values(?,?,?) ";
    		int result = -1;
    		try {
    			con = JDBCUtil.getConnection();
    			pstat = con.prepareStatement(sql);
    			pstat.setString(1, name);
    			pstat.setDouble(2, price1);
    			pstat.setInt(3, num1);
    			result = pstat.executeUpdate();
    			if (result == 1) {
    				JOptionPane.showMessageDialog(null, "添加成功");
    			} else {
    				JOptionPane.showMessageDialog(null, "添加失败!");
    			}
    		} catch (SQLException sqle) {
    			sqle.printStackTrace();
    		} catch (Exception e) {
    			e.printStackTrace();
    		} finally {
    			JDBCUtil.realeaseAll(null, pstat, con);
    		}
    	}
    

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

    • 可以存储大量的数据;
    • 操作方便快速

    4.课外阅读

    4.1 JDBC(TM) Database Access
    4.2 代码结构中Dao,Service,Controller,Util,Model是什么意思,为什么划分
    4.3 mysq数据库管理工具navicat基本使用方法

  • 相关阅读:
    (转)MVC 与三层架构
    (转)CentOS一键安装Nginx脚本
    (转)Python异常类的继承关系
    CMFCPropertyGridProperty用法
    C语言终极面试及答案分析
    C/C++函数指针(typedef简化定义)
    UNIX 家族及Linux
    Socket的综合应用总结
    Socket模型(二):完成端口(IOCP)
    socket通信中select函数的使用和解释
  • 原文地址:https://www.cnblogs.com/lch9/p/6913430.html
Copyright © 2020-2023  润新知