上面hql语句中有name=:name的写法,第一个name是属性名,第二个name是待赋值的占位符,那么setString方法的第一个参数就对应属性名,第二个参数就是给占位符的赋值,我这么理解对吗?因为我看到有人说setString方法的第一个参数代表“角标”,有些不解这种说法是什么意思
是的,第一个是你hql中的:name,第二个是传入的值,这里是作为函数参数的name
不要想太多
就这样理解,学的深了,还会有庚更深的理解(就是更专业的解释,其实都是对的,何必在意怎样解释)
就像
PreparedStatement pst ;
String sql = "insert into student(id, name, passward, grade, gender) values(?,?,?,?,?)";
//这里的占位符 ?一样
pst.setInt(1, 1);
pst.setString(2, "张三");
pst.setString(3, "密码");
pst.setInt(4, 100);
pst.setString(5, "男");//在对应的位置插入对应的数据