已有101人关注
求助《java入门到精通》中第20章第5各实例,相关问题。
发表在Java图书答疑 2009-01-01
是否精华
版块置顶:
import java.io.*;
import java.sql.*;
public class tc {
static Connection con;
static PreparedStatement sql;
static ResultSet res;
public Connection getConnection() {
try {
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
con = DriverManager.getConnection(
"jdbc:microsoft:sqlserver://localhost:1433;"
+ "DatabaseName=Stock_manage", "sa", "23572306");
System.out.println("数据库链接成功");
} catch (Exception e) {
e.printStackTrace();
}
return con;
}
public static void main(String[] args) {
tc c = new tc();
con = c.getConnection();
//查询数据库原来信息
try {
sql = con.prepareStatement("select * from student");
res = sql.executeQuery();
System.out.println("原数据");
while(res.next()){
String id = res.getString(1);
String name = res.getString("name");
String sex = res.getString("sex");
String brithday = res.getString("brithday");
System.out.print("编号" + id);
System.out.print("名字" + name);
System.out.print("性别" + sex);
System.out.println("生日" + brithday);
}
//添加数据
sql = con.prepareStatement("insert into student values(?,?,?,?)");
sql.setInt(1, 10);
sql.setString(2, "张宏");
sql.setString(3,"女");
sql.setString(4, "1993-10-20");
sql.executeUpdate();
//修改数据
sql = con.prepareStatement("update student set brithday = ? where id = ?");
sql.setString(1, "1994-11-05");
sql.setInt(2, 3);
sql.executeUpdate();
//删除数据
sql = con.prepareStatement("delete from student where id = ?");
sql.setInt(1,5);
sql.executeUpdate();
//查询更新后的数据
sql = con.prepareStatement("select * from student");
res = sql.executeQuery();
System.out.println("更新后");
while (res.next()) {
String id = res.getString(1);
String name = res.getString("name");
String sex = res.getString("sex");
String brithday = res.getString("brithday");
   System.out.print("编号" + id);
System.out.print("名字"+ name);
System.out.print("性别" + sex);
System.out.println("生日" + brithday);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
请问在修改数据,那段代码中的sql = con.prepareStatement("update student set brithday = ? where id = ?");
sql.setString(1, "1994-11-05");
sql.setInt(2, 3);
其中sql.setString(1, "1994-11-05");中的数字1代表什么?
sql.setInt(2, 3);中的数字2代码数据库表中的数字2和3又代表什么?具体是代表数据库表中的那一列?
备注:数据库表中的各字段名称依次是:id; name;sex;birthday 
分享到:
精彩评论 3
学分: LV1
2009-01-03
沙发
其中sql.setString(1, "1994-11-05");中的 1代表 
sql = con.prepareStatement("update student set brithday = ? where id = ?");
birthday的问号占位符

sql.setInt(2, 3);中的 2代表id的问号占位符 ,3代表为 id 赋值 3

说明:
在jdbc中占位符的 索引从1 开始 

如果您用Hibernate   占位符的 索引从0开始



东北虎
学分:0 LV1
2009-01-16
板凳
语句sql = con.prepareStatement("update student set brithday = ? where id = ?");中的问号表示占位符,
这个语句有两个问号,就是有两个占位符,而语句sql.setString(1, "1994-11-05");中的1表示给第一个问号赋值,
赋值的内容是“1994-11-05”;而语句sql.setInt(2, 3);中的2表示给第二个问号赋值,赋值的内容是3。



东北虎
学分:0 LV1
2009-01-16
地板
语句sql = con.prepareStatement("update student set brithday = ? where id = ?");中的问号表示占位符,
这个语句有两个问号,就是有两个占位符,而语句sql.setString(1, "1994-11-05");中的1表示给第一个问号赋值,
赋值的内容是“1994-11-05”;而语句sql.setInt(2, 3);中的2表示给第二个问号赋值,赋值的内容是3。
首页上一页 1 下一页尾页 3 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照