为了账号安全,请及时绑定邮箱和手机立即绑定

8-7章节里面的问题

stmt.setInt(1,id);这句话为什么要加进去,是什么意思

正在回答

2 回答

String sql = "select * from items where id = ?";
stmt = conn.prepareStatement(sql);
stmt.setInt(1, id);//数字表示第几个占位符,即sql中的 ?
rs = stmt.executeQuery();

很显然这里只有一个 ? 

把id的值传给传给sql中的第1个 ?

然后执行sql语句

                Connection conn=DBUtil.getConnection();
                //使用占位符?代替参数
		String sql="insert into imooc_goddess(user_name,sex,age,birthday,email,mobile,"
				+ "create_user,create_date,update_user,update_date,isdel)"
				+ "values(?,?,?,?,?,?,?,current_date(),?,current_date(),?)";
		PreparedStatement ptmt=conn.prepareStatement(sql);//预编译sql语句,并不执行
		
		ptmt.setString(1, g.getUser_name());//数字表示第几个占位符,即 ?
		ptmt.setInt(2, g.getSex());
		ptmt.setInt(3, g.getAge());
		ptmt.setDate(4, new Date(g.getBirthday().getTime()));
		ptmt.setString(5, g.getEmail());
		ptmt.setString(6, g.getMobile());
		ptmt.setString(7, g.getCreate_user());
		ptmt.setString(8, g.getUpdate_user());
		ptmt.setInt(9, g.getIsdel());
		ptmt.execute();//该方法被调用时才会执行上面的sql语句

这里就不止一个 ? 了

把取得的age值传给sql中的第3个 ?

等等

然后执行sql语句

0 回复 有任何疑惑可以回复我~
#1

看世事繁华 提问者

非常感谢!
2016-11-09 回复 有任何疑惑可以回复我~
#2

wshyzx 回复 看世事繁华 提问者

助人人助,共勉!
2016-11-09 回复 有任何疑惑可以回复我~

就是将前面sql语句中的一个也就只有一个变量替换为参数id

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

8-7章节里面的问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信