• Java第八次作业


    Java第八次作业

    (一)学习总结

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

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

    Statement接口

    一个Statement对象用于执行静态SQL语句,并获得语句执行后的结果
    executeUpdate(String sql)方法执行数据库的SQL语句,返回更新记录数
    executeQuery(String sql)方法执行数据库查询操作,返回一个结果集对象

    conn = JDBCUtils.getConnection(1);
    String sql = "insert into pet(no,type,age,number,price) values (?,?,?,?,?)";
    pstmt = conn.prepareStatement(sql);
    pstmt.setString(1, pet.getNo());
    pstmt.setString(2, pet.getType());
    pstmt.setString(3, pet.getAge());
    pstmt.setString(4, pet.getNumber());
    pstmt.setString(5,pet.getPrice());
    int num = pstmt.executeUpdate();
    

    PreparedStatement接口创建一个可以编译的SQL语句对象,该对象可以被多次运行,以提高执行效率,该接口是Statement类的子接口,属于预处理操作,与Statement接口不同的是,PreparedStatement接口操作时,在数据表中准备好SQL语句,内容暂时不设置,等待用户分别设置,PreparedStatement接口除Statement的所有操作,还有新操作
    executeUpdate()方法执行设置的预处理SQL语句
    executeQuery()方法执行数据库查询操作,返回ResultSet
    使用Statement接口(进行查询时,SQL语句的内容是具体的),Statement在每次调用时,都要重新进行编译
    使用PreparedStatement接口(进行查询时,SQL语句使用占位符进行设置具体内容),PreparedStatement是预编译语句,支持批处理,能够减少对数据库资源的占用
    PreparedStatement能够编写动态查询语句
    为什么使用PreparedStatement而不用Statement?
    使用PreparedStatement提升代码的可读性和可维护性还可提升性能,提高了安全性
    总结:虽然在对数据库中的数据只进行一次性的存取时,使用Statement会比PreparedStatement更有效率,但使用PreparedStatement能够提升数据库的总体效率以及安全性,所以在开发中尽量使用PreparedStatement
    3.其他需要总结的内容。
    File类提供了创建文件、获取文件属性的机制。
    在不同操作系统中路径分割符是不一样的:

     public static final String separator。
     File file=new File("d:"+File.separator+"test.txt");
    

    (1)File类构造方法:
    public File(String path)
    如果path是实际存在的路径,则该File对象表示的是目录;
    如果path是文件名,则该File对象表示的是文件。

    (2)获取文件名称和路径
    String getPath()方法返回File对象的路径
    String getAbsolutePath()方法返回File对象的绝对路径

    (3)测试文件的属性
    boolean exists( )检查File文件是否存在
    boolean canWrite( )回当前文件是否可写
    boolean isDirectory( )检测是否是目录
    (4)创建或删除文件、目录
    public boolean createNewFile() throws IOException :创建文件
    boolean mkdir()和boolean mkdirs():创建目录。创建目录的位置完全取决于File对象的路径。
    boolean delete():删除文件或目录,删除目录时,应该保证所删目录是一个空目录,否则删除操作失败
    (5)目录清单
    String[] list()方法产生目录清单,只列出名称
    2.字节输出流OutputStream类
    (1)OutputStream类是一个抽象类,需要通过子类进行对象的实例化操作。
    (2)FileOutputStream子类。
    生成FileOutputStream对象时,如果文件不存在,则创建该文件供程序输出数据,如果文件已经存在,则有覆盖和附加两种输出数据的方式:
    覆盖:原文件数据被丢弃,重新输出数据;
    附加:在原文件末尾追加输出数据
    (3)字节输入流InputStream类,FileInputStream子类
    (4)字符输入/输出流Reader类/Writer类
    字节输入/输出流是以byte类型为主,字符输入/输出流是以char类型为主,且支持String的直接操作。
    Reader和Writer类是抽象类,对文件的操作要使用FileReader子类和FileWriter子类,许多方法与InputStream和OutputStream类相同。

    (二)实验总结

    实验内容:
    1.宠物商店
    使用JDBC实现宠物商店,在随笔中分析程序设计思路,用PowerDesigner画出类图结构,并对完成实验内容过程中遇到的问题、解决方案和思考等进行归纳总结,注意代码中必须有必要的注释。

    程序的设计思路:
    (1)首先用java连接数据库
    (2)重新设置SQL,创建数据库
    (3)设置端口
    (4)将数据库中的SQLQuery1.sqi导入java项目中。
    (5)书写Java代码

    (三)代码托管

    • 码云commit历史截图
  • 相关阅读:
    [ssh] 通过ssh私钥生成公钥的方法
    [redis] hiredis-vip 简单使用
    [redis] redis cli的学习记录
    [ovs] 编写openflow流表的文档指引
    [iptables] 如何用iptables管理桥接模式下的设备
    [qemu][kvm] 在kvm嵌套kvm的虚拟机里启动kvm加速
    [qemu] 差分盘使用
    [yum] yum加速
    [ovs] openvswitch 从源码编译安装
    [qemu] qemu从源码编译安装
  • 原文地址:https://www.cnblogs.com/junjun137/p/6869852.html
Copyright © 2020-2023  润新知