(一)学习总结
1.用思维导图对本周的学习内容进行总结。
2.通过实验内容中的具体实例说明在执行executeUpdate()方法和executeQuery()方法中使用动态参数时,为什么要使用PreparedStatement接口而不使用Statement,比较使用两种接口的不同之处。
1、executeQuery()方法
执行数据库更新的SQL语句,例如INSETR、UPDATE、DELETE等语句,返回更新的记录数。
conn = JDBCUtils.getConnection(1);
stmt = conn.createStatement();
String sql = "select no,type,age,number,price from pet";
rs = stmt.executeQuery(sql);
2、executeUpdate()方法
执行数据库查询操作,返回一个结果集对象。
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();
3、PreparedStatement接口和Statement接口的不同
PreparedStatement属于预处理操作,实例包含已编译的 SQL 语句。与直接使用Statement不同的是,preparedStatement在操作时是在数据表中已经有一条SQL语句,但此时SQL语句的具体内容暂时不保留"?"形式作为占位符。
每个问号的值必须在该语句执行之前,通过适当的setXXX 方法来提供。
statement每次执行sql语句,相关数据库都要执行sql语句的编译
由于 PreparedStatement 对象已预编译过,所以其执行速度要快于 Statement 对象。因此,多次执行的 SQL 语句经常创建为 PreparedStatement对象,以提高效率。
3.其他需要总结的内容。
本次试验中遇到了一些问题,根据老师的程序进行更改,比较和上一次简单程序的不同。这次还运用了数据库的内容,对于什么都不太好的我来说有一些难。要注意的细节越来越多了。
(二)实验总结
实验内容:
使用JDBC实现实验七的宠物商店
完成实验内容,代码上传到码云,注意,务必将创建数据库的脚本文件随项目文件一起上传,在随笔中分析程序设计思路,用PowerDesigner画出类图结构,并对完成实验内容过程中遇到的问题、解决方案和思考等进行归纳总结,注意代码中必须有必要的注释。
格式如下:
程序设计思路:
先定义两个基本的信息类,一个宠物信息Petmessage类,有宠物的编号、品种、年龄、数量、价格属性和get、set方法。另一个是登录用户信息User类,有用户名和登录密码属性和检验登录信息是否正确的一个方法。设置登录界面成功后里面存放数据,添加删除的组件。在连接java和数据库插入数据时采用占位形式。
问题1:
在连接数据库时出现问题。
原因:
连接的文件名要一致。
create table petshop(
number varchar(10) primary key,
var varchar(20),
age varchar(10),
count varchar(10),
price varchar(10),
)
insert into petshop
values('1','金毛','1','1',5000.0)
insert into petshop
values('2','波斯猫','2','1',6000.0)
insert into petshop
values('3','边牧','2','2',3500.0)
(三)代码托管
http://git.oschina.net/hebau_cs15/Java-CS02lc/commit/09c538e2b79a50ba9948c8e871ae6be836f87f49