Java第八次作业

(一)学习总结

executeUpdate()方法和executeQuery()方法在实例中的应用

import java.sql.*;

public class Demo{
    public static String JDriver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
    public static String JURL = "jdbc:sqlserver://127.0.0.1:1433;databaseName=Pet";
    public static String JUSER = "asahi";
    public static String JPASSWORD = "731226";
    public static void main(String args[]) throws Exception{
	    Connection con = null;
	    PreparedStatement pstmt = null;
	    ResultSet rs = null;
	    int sum = 0;
	    Class.forName(JDriver);
	    con = DriverManager.getConnection(JURL, JUSER, JPASSWORD);
	    String sql = "select number,kind,age,numbers,price from Pet";
	    pstmt = con.prepareStatement(sql);        
	    rs = pstmt.executeQuery();        //执行数据库查询操作,返回ResultSet对象
	    while(rs.next()){
		    String number = rs.getString(1);
		    String kind = rs.getString(2);
		    String age = rs.getString(3);
		    String numbers = rs.getString(4);
		    String price = rs.getString(5);
		    System.out.println(number+","+kind+","+age+","+numbers+","+price);
	    }
	    String sql1 ="insert into Pet values ('3','花猫','1','6','600')";
	    pstmt = con.prepareStatement(sql1);
	    sum = pstmt.executeUpdate();        //执行设置的预处理SQL语句
	    if(sum!=0){
		    System.out.println(sum);
	    }
    }
}

PreparedStatement和Statement的不同

  • PreparedStatement是预编译语句,支持批处理,能够减少对数据库资源的占用
  • Statement在每次调用时,都要重新进行编译
  • PreparedStatement能够编写动态查询语句

为什么使用PreparedStatement而不用Statement?

  • 提升代码的可读性和可维护性
  • PraparedStatement尽最大可能提升性能
  • 极大的提高了安全性

总结:虽然在对数据库中的数据只进行一次性的存取时,使用Statement会比PreparedStatement更有效率,但使用PreparedStatement能够提升数据库的总体效率以及安全性,所以在开发中尽量使用PreparedStatement

(二)实验总结

程序设计思路

  • 使用数据库替换实验七的dataBase类
  • 新建一个类实现对数据库的连接和关闭
  • 在dao中实例化Conection对象和PreparedStatement对象,实现对数据库中的数据的操作

总结:数据库编程是固定的套路,记住JDBC的操作步骤和executeUpdate()、executeQuery()的用法即可

(三)代码托管

(四)学习进度条

代码行数(新增/累积) 学习时间(新增/累积) 本周学习内容
目标 5000行 300小时
第2-4周 300/300 15/15 学习了用Scanner从控制台输入和随机数的创建和应用
第5周 200/500 10/25 String和char[]等之间的相互转化
第6周 50/550 10/35 class类的创建和应用,this关键字,java比较器
第7-8周 100/650 10/45 继承和覆写
第9周 100/750 10/55 接口、抽象类、日期类和匿名内部类
第10周 150/900 8/63 JAVA的异常捕获,List接口和Set接口,迭代器
第11周 300/1200 12/75 JAVA图形界面
第12周 100/1300 8/83 数据库的连接
原文地址:https://www.cnblogs.com/yamito/p/6855894.html