编写面向对象的jdbc,也即是通过传入对象而非数值来获取sql命令,这使得我们的语句更加凝练和容易理解。
例如,我通过student类创建一个student对象并将其传入sql执行函数当中:
class student
{
private int id;
private String name;
private char sex;
public student(int id,String name,char sex)
{
this.id=id;
this.name=name;
this.sex=sex;
}
public int getid(){
return id;
}
public String getname(){
return name;
}
public char getsex(){
return sex;
}
}
public void addstudent(student stu) throws Exception
{
Connection conn = getConnection();
Statement state = conn.createStatement();
String sql="insert into student1 values
"+"("+stu.getid()+",'"+stu.getname()+"','"+stu.getsex()+"')";
state.executeUpdate(sql);
state.close();
conn.close();
}
通过以上观察,我们很容易发现,使用面向对象的jdbc编程,最为麻烦的是我必须编写出准确的sql语句而为此花费大量的精神去检查格式问题,但通过PreparedStatement类可以帮我们以更为科学的方式来解决这个问题。其使用方式如下:
1、编写含占位符的sql语句:
String sql="insert into student1 values (?,?,?)";
2、生成PreparedStatement 对象
PreparedStatement state = conn.prepareStatement(sql);
3、填入参数来填补占位符位置
state.setInt(1, stu.getid());
state.setString(2, stu.getname());
state.setString(3, String.valueOf(stu.getsex()));
4、直接运行execute语句
state.executeUpdate();
通过以上方法,我们可以更为便利的以面向对象的方式来运用jdbc。