JAVA第八次作业
(一)学习总结
1.用思维导图对本周的学习内容进行总结。
2.通过实验内容中的具体实例说明在执行executeUpdate()方法和executeQuery()方法中使用动态参数时,为什么要使用PreparedStatement接口而不使用Statement,比较使用两种接口的不同之处。
(1)使用executeUpdate()方法执行数据库查询操作,返回一个结果集对象。
conn = JDBCUtils.getConnection(1);
String sql = "insert into pet (n,kind,number,age,price) values (?,?,?,?,?)";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, pet.getNo());
pstmt.setString(2,pet.getKind());
pstmt.setString(3,pet.getNumber());
pstmt.setString(4,pet.getAge());
pstmt.setString(5,pet.getPrice());
int num = pstmt.executeUpdate();
(2)使用executeQuery()方法执行数据库更新的SQL语句,如INSETR、UPDATE、DELETE等语句,返回更新的记录数。
conn = JDBCUtils.getConnection(1);
stmt = conn.createStatement();
String sql = "select n,kind,number,age,price from pet";
rs = stmt.executeQuery(sql);
(3)PreparedStatement接口和Statement接口的不同:
执行动态SQL语句,通常通过PreparedStatement实例实现;执行数据定义和更新语句时,如CREATE、DELETE、UPDATE和INSERT等语句,使用Statement对象的executeUpdate方法执行
public boolean addPetItem(PetItem pet){
Connection conn = null;
PreparedStatement pstmt = null;
boolean result=false;
try{
conn = JDBCUtils.getConnection(1);
String sql = "insert into pet (n,kind,number,age,price) values (?,?,?,?,?)";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, pet.getNo());
pstmt.setString(2,pet.getKind());
pstmt.setString(3,pet.getNumber());
pstmt.setString(4,pet.getAge());
pstmt.setString(5,pet.getPrice());
int num = pstmt.executeUpdate();
if(num > 0){
result = true;
}
}catch(Exception e ){
e.printStackTrace();
}finally{
JDBCUtils.close(conn);
}
return result;
}
执行静态SQL语句时,通常通过Statement实例实现;执行数据查询语句时,如SELECT语句,使用Statement对象的executeQuery 方法执行。
public class AdminDao {
//获取所有数据
public ArrayList<PetItem> queryAllData(){
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
ArrayList<PetItem> list = new ArrayList<PetItem>();
try{
conn = JDBCUtils.getConnection(1);
stmt = conn.createStatement();
String sql = "select n,kind,number,age,price from pet";
rs = stmt.executeQuery(sql);
while(rs.next()){
PetItem thisPet = new PetItem();
thisPet.setNo(rs.getString("n"));
thisPet.setKind(rs.getString("kind"));
thisPet.setNumber(rs.getString("number"));
thisPet.setAge(rs.getString("age"));
thisPet.setPrice(rs.getString("price"));
list.add(thisPet);
}
return list;
}catch(Exception e ){
e.printStackTrace();
}finally{
JDBCUtils.close(conn);
}
return null;
}
3.其他需要总结的内容。
(二)实验总结
实验内容:
使用JDBC实现实验七的宠物商店
完成实验内容,代码上传到码云,注意,务必将创建数据库的脚本文件随项目文件一起上传,在随笔中分析程序设计思路,用PowerDesigner画出类图结构,并对完成实验内容过程中遇到的问题、解决方案和思考等进行归纳总结,注意代码中必须有必要的注释。
设计思路:1.创建宠物商店数据库
2.JAVA程序中运用JDBC连接数据库。
问题:
1.连接数据库时,注意数据库名称,登录名
/*
* 连接SQLSERVER数据库
*/
private static Connection getConnectionSQL()
{
Connection conn=null;
final String DBDRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
final String DBURL = "jdbc:sqlserver://localhost:1433;databaseName=pet";
final String DBUSER = "root";
final String DBPASS = "root";
try {
Class.forName(DBDRIVER);
conn=DriverManager.getConnection(DBURL,DBUSER,DBPASS);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
(三)代码托管(务必链接到你的项目)
•码云commit历史截图