2020-01-14
sql语句占位符的使用和操作
占位符赋值
public static void main(String[] args) {
String sql="update t_school set name=?,address=? where id=?";
try {
Connection conn = DbUtil.getConn();
PreparedStatement pstm = conn.prepareStatement(sql);
pstm.setString(1, "我是更新后的学校");
pstm.setString(2, "我是更新后学校的地址");
pstm.setInt(3, 11);
int i = pstm.executeUpdate();
System.out.print("执行");
if (i>0) {
System.out.println("成功");
}else {
System.out.println("失败");
}
} catch (SQLException e) {
e.printStackTrace();
}
}
查询返回结果集
public static void main(String[] args) {
String sql = "select name,student_no,sex from t_student";
try {
Connection conn = DbUtil.getConn();
PreparedStatement pstm = conn.prepareStatement(sql);
ResultSet rs = pstm.executeQuery();
while(rs.next()){
String name = rs.getString("name");
String stuNum = rs.getString("student_no");
int sexNum = rs.getInt("sex");
System.out.println("姓名:"+name+",学号:"+stuNum+",性别:"+(sexNum==1?"男":"女"));
}
} catch (SQLException e) {
e.printStackTrace();
}
Oracle存储过程的调用和传参
public static void main(String[] args) {
String sql = "call pro_stu_con(?,?)";
try {
Connection conn = DbUtil.getConn();
CallableStatement cstm = conn.prepareCall(sql);
cstm.setString(2, "2");
cstm.registerOutParameter(1,Types.NUMERIC);
cstm.execute();
int con = cstm.getInt(1);
System.out.println("存储过程调用完成!");
System.out.println("女生人数:"+con);
cstm.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}