(一)学习总结
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 | 数据库的连接 |