Java第八次作业--数据库编程
(一)学习总结
1.用思维导图对本周的学习内容进行总结。
2.通过实验内容中的具体实例说明在执行executeUpdate()方法和executeQuery()方法中使用动态参数时,为什么要使用PreparedStatement接口而不使用Statement,比较使用两种接口的不同之处。
- executeUpdate()方法:
statement 接口中有executeUpdate(String sql)方法发送sql 并返回执行成功的记录的条数 int;prepareStatement是statement的子接口自己定义了方法executeUpdate() 用于执行已发送的预编译的sql 并返回执行成功的记录的条数 int;
- executeQuery()方法:
使用JDBC连接数据库需要四步,第一步加载驱动程序;第二步,连接数据库;第三步,访问数据库;第四步,执行查询;其中在第四步执行查询时,要用statement类的executeQuery()方法来下达select指令以查询数据库,executeQuery()方法会把数据库响应的查询结果存放在ResultSet类对象中供我们使用。即语句:String sql="select * from"+tableName; ResultSet rs=s.executeQuery(sql);
3.其他需要总结的内容。
1.包含在PreparedStatement对象中的SQL语句可以带有一个或多个参数,使用“?”作为占位符
2.执行SQL语句之前,必须使用PreparedStatement对象中的setX方法设置每个“?”位置的参数值;
3.设置好每个参数值之后,可以使用PreparedStatement对象的无参的executeUpdate()和executeQuery()方法来执行SQL语句。
(二)实验总结
实验内容:
使用JDBC实现实验七的宠物商店
完成实验内容,代码上传到码云,注意,务必将创建数据库的脚本文件随项目文件一起上传,在随笔中分析程序设计思路,用PowerDesigner画出类图结构,并对完成实验内容过程中遇到的问题、解决方案和思考等进行归纳总结,注意代码中必须有必要的注释。
- 问题1: 无法修改数据
导入老师的fruitshop程序对其进行修改时,将fruitshop名字修改为petshop,但是没有将fruit.sql的名称修改为pet.sql,所以语句String sql = "insert into pet (number,pinzhong,age,shuliang,price) values (?,?,?,?,?)";
是无法执行的,应该修改为String sql = "insert into fruit (number,pinzhong,age,shuliang,price) values (?,?,?,?,?)";
,才能调用其数据库
- 问题2:数据库的连接
在应用Java连接sql server时,应该注册一下,如账户sa,密码123,这些要写在java程序中
导入fruit.sql包
final String DBURL = "jdbc:sqlserver://localhost:1433;databaseName=fruit";
输入帐户
final String DBUSER = "sa";
输入密码
final String DBPASS = "123";
- 问题3:运行程序时界面按键重叠
在运行程序时,因为老师写的fruitshop有名称,编号,价格,计价单位4个键,但是在petshop中,却有名称,编号,年龄,数量,价格5个键,如果不修改磅值,最后会导致“价格”框与“添加宠物/修改宠物/”框重叠
原代码为updateBtn.setBounds(460, 310, 90, 25);
只需将460修改为较大值即可,但是不能超过代码中整体窗口大小的磅值
this.setSize(800,700);
对其大小进行调整之后:updateBtn.setBounds(600, 310, 90, 25);
(三)代码托管(务必链接到你的项目)
码云commit历史截图
上传实验项目代码到码云,在码云项目中选择“统计-commits”,设置搜索时间段,搜索本周提交历史,并截图。
https://git.oschina.net/hfja/java-CS02hfj.git