Statement
Statement作用:
执行sql语句
int excuteUpdate(sql):执行DML,DDL语句
返回值:1.DML语句影响行数 2.DDL语句执行后,执行成功也可能返回0
ResultSet excuteQuery(sql): 执行DQL语句
返回值:ResultSet结果集对象
ResultSet
ResultSet(结果集对象)作用:
封装了DQL查询语句的结果
ResultSet stmt.excuteQuery(sql): 执行DQL语句,返回ResultSet对象
获取查询结果
boolean next():1.将光标从当前位置向前移动一行; 2.判断当前行是否为有效行;
返回值:
true:有效行,当前行有数据
false:无效行,当前行没有数据
xxx getXxx(参数):获取数据
xxx:数据类型;如:int getInt(参数):String getString(参数)
参数:
int:列的编号,从1开始
String:列的名称
使用步骤:
1.游标向下移动一行,并判断该行是否有数据:next()
2.获取数据:getXxx(参数)
//循环判断游标是否是最后一行末尾
while(rs.next()){
//获取数据
rs.getXxx(参数);
}
PreparedStatement
PreparedStatement作用
预编译sql并执行sql语句
1.获取PreparedStatement对象
//SQL语句中的参数值使用?占位符替代
String sql = "select * from user where username = ? and password = ?";
//通过Connection对象获取,并传入对应的Sql语句
PreparedStatement pstmt = conn.prepareStatement(sql);
2.设置参数值
PreparedStatement对象:setXxx(参数1,参数2):给?赋值
Xxx:数据类型; 如setInt(参数1,参数2)
参数:
参数1:?的位置编号,从1开始
参数2:?的值
3.执行sql
excuteUpdate();/excuteQuery();: 不需要再传递sql