• JAVA第八次作业


    JAVA第八次作业

    (一)学习总结

    1.用思维导图对本周的学习内容进行总结

    参考资料: XMind。
    2.通过实验内容中的具体实例说明在执行executeUpdate()方法和executeQuery()方法中使用动态参数时,为什么要使用PreparedStatement接口而不使用Statement,比较使用两种接口的不同之处。

    1>方法executeQuery
    用于产生单个结果集(ResultSet)的语句,例如 SELECT 语句。 被使用最多的执行 SQL 语句的方法。这个方法被用来执行 SELECT 语句,它几乎是使用最多的 SQL 语句。但也只能执行查询语句,执行后返回代表查询结果的ResultSet对象。

    如:
    
        //加载数据库驱动
        
        Class.forName("com.mysql.jdbc.Driver");
        
        //使用DriverManager获取数据库连接
        Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test",
                        "root","1234");
        
        //使用Connection来创建一个Statment对象
        Statement  stmt = conn.createStatement();
        
        //执行查询语句
        ResultSet rs =stmt.executeQuery("select * from teacher");
        
        //把查询结果输出来
        
        while (rs.next())
        
        {
        
            System.out.println(rs.getInt(1) + "/t" +    rs.getString(2)); 
        }
    

    2>方法executeUpdate
    用于执行 INSERT、UPDATE 或 DELETE 语句以及 SQL DDL(数据定义语言)语句,例如 CREATE TABLE 和 DROP TABLE。INSERT、UPDATE 或 DELETE 语句的效果是修改表中零行或多行中的一列或多列。executeUpdate 的返回值是一个整数(int),指示受影响的行数(即更新计数)。对于 CREATE TABLE 或 DROP TABLE 等不操作行的语句,executeUpdate 的返回值总为零。

    如:

        //加载数据库驱动
        
        Class.forName("com.mysql.jdbc.Driver");
        
        //使用DriverManager获取数据库连接
        
        Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test",
                        "root","1234");
        
        //使用Connection来创建一个Statment对象
        
        Statement  stmt = conn.createStatement(); 
        //执行DML语句,返回受影响的记录条数
        
        return stmt.executeUpdate(sql);
    

    Statement 是 Java 执行数据库操作的一个重要接口,用于在已经建立数据库连接的基础上,向数据库发送要执行的SQL语句。Statement对象,用于执行不带参数的简单SQL语句。

    PreparedStatement接口继承Statement,作为 Statement 的子类,PreparedStatement 继承了 Statement 的所有功能。它还添加了一整套方法,用于设置发送给数据库以取代 IN 参数占位符的值。

    3.其他需要总结的内容。

    为什么执行SQL语句用的是PrepareStatement对象而不是Statement对象呢?有什么区别吗?

      sql=con.createStatement();有了Statement对象后,可以调用相应的方法实现对数据库的查询和修改
      res.sql.executeQery(select * from stub);//获取查询结果集使用“%”代替0个或多个字符,使用下划线“_”代替一个字符实现模糊查询。+"where name like'zhang%'"
      while(res.next()){
        int id=rew.getInt("id");
       String name=res.getString("name");
     }
    

    向数据库发送一个SQL语句,数据库中的SQL解释器负责把SQL语句生成底层的内部命令,然后执行该命令,完成相关的数据库操作,但是不断地向数据库提交SQL语句,会增加DB中SQL解释器的负担,影响执行速度。对于JDBC,可以通过Connection对象的preparedStatement方法对SQL语句进行预处理。

    (二)实验总结

    实验内容:
    使用JDBC实现实验七的宠物商店

    程序设计思路:

    1.用户注册系统,设计UsersJFame窗口,显示用户注册页面,定义各属性和输入文本框的位置及大小,定义一个面板,放置注册按钮。在编写图形界面时,再对用户名和密码进行验证,若登录成功,进入宠物商店管理界面。

    2.创建JDBCUtils类,负责数据库连接和关闭操作以及取得数据库的连接对象。

    3.定义宠物信息窗口类,定义三个按钮,查找,购买和显示清单,两个存储工具,分别存储宠物列表和购买的宠物清单。

    4.创建项目运行类,定义MainApp方法,进行测试。
    问题:连接好数据库之后,运行程序,点击进入系统页面之后就会出现错误
    原因:有空指针
    解决方案:重新连接,设置数据库页面和需要的包

    (三)代码托管

    码云commit历史截图
    上传实验项目代码到码云,在码云项目中选择“统计-commits”,设置搜索时间段,搜索本周提交历史,并截图。

  • 相关阅读:
    LeetCode344
    LeetCode18四数之和扩展N数之和
    LeetCode383赎金信
    2018-2020创业总结
    LeetCode454四数相加
    普通dll项目添加WPF的Window对象
    WPF中RadioButton的数据绑定
    02 C# 文件压缩与解压
    WPF 使用附加属性声明 ICommand
    自定义WPF分页控件
  • 原文地址:https://www.cnblogs.com/HQY110/p/6874579.html
Copyright © 2020-2023  润新知