myEclipse操作mysql数据表

觉望不绝望 2019-12-19 08:30:53
例如数据表里面有 number name age profession balance //表头 numner1 name1 age profession1 balance1 这两行字段,现在要通过关键字查询表里面的一行字段,如已知age1 这个数据,怎么得到这一行字段的其他数据。 我写的函数要实现的是这个功能,如果将 int result=0; sql=“select * from biao where age=?” ; sm1=conn.prepareStatement(sql); sm1.setString(1,age1); result=sm1.executeUpdate(); 但prepareStatement 对象的executeUpdate()函数不对select 语句进行处理。 还有,要输出这行数据要怎么写代码? 刚读大二的小学弟,这些东西老师不教,书本上又写的不详细,网上又不好找,求助大佬
...全文
110 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
觉望不绝望 2019-12-21
  • 打赏
  • 举报
回复
我的问题解决了,谢谢你。
你看见了吗° 2019-12-21
  • 打赏
  • 举报
回复
引用 11 楼 123倔强 的回复:
你的意思是将结果集ResultSet rs中的数据封装到我的实体类中,就可以用我自己定义的方法打印输出这些数据了是吗

是的,
觉望不绝望 2019-12-20
  • 打赏
  • 举报
回复
引用 9 楼 a229397620的回复:
Connection conn = null;
String sql = "select * from biao where number=?";
PreparedStatement psmt = null;
ResultSet rs = null;
Biao ab = null;//你的实体类,对应的是biao
try {
conn = DatasourceCenter.getInstance().getInstance();
psmt = conn.prepareStatement(sql);
psmt.setInt(1, number);//看你的number是什么类型,是string就用setString()
rs = psmt.executeQuery();
if (rs.next()) {
ab = new Biao();
ab.setNumber(rs.getInt("number"));
ab.setName(rs.getString("name"));
ab.setAge(rs.getInt("age"));
ab.setProfession(rs.getString("profession"));
ab.setBalance(rs.getDouble("balance"));
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (rs != null) {
rs.close();
}
if (psmt != null) {
psmt.close();
}
if (conn != null) {
conn.close();
}
} catch (Exception e2) {
e2.printStackTrace();
}
}
return ab;
你的意思是将结果集ResultSet rs中的数据封装到我的实体类中,就可以用我自己定义的方法打印输出这些数据了是吗
觉望不绝望 2019-12-20
  • 打赏
  • 举报
回复
你的意思是将结果集ResultSet rs中的数据封装到我的实体类中,就可以用我自己定义的方法打印输出这些数据了是吗
你看见了吗° 2019-12-20
  • 打赏
  • 举报
回复
number是唯一标号,就不可能会查询到整张表的数据,只是查询全部列的数据,如果你不要查询全部列就用
select number,name from biao  where number=?

需要几列就写几个
你看见了吗° 2019-12-20
  • 打赏
  • 举报
回复
Connection conn = null;
String sql = "select * from biao where number=?";
PreparedStatement psmt = null;
ResultSet rs = null;
Biao ab = null;//你的实体类,对应的是biao
try {
conn = DatasourceCenter.getInstance().getInstance();
psmt = conn.prepareStatement(sql);
psmt.setInt(1, number);//看你的number是什么类型,是string就用setString()
rs = psmt.executeQuery();
if (rs.next()) {
ab = new Biao();
ab.setNumber(rs.getInt("number"));
ab.setName(rs.getString("name"));
ab.setAge(rs.getInt("age"));
ab.setProfession(rs.getString("profession"));
ab.setBalance(rs.getDouble("balance"));
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (rs != null) {
rs.close();
}
if (psmt != null) {
psmt.close();
}
if (conn != null) {
conn.close();
}
} catch (Exception e2) {
e2.printStackTrace();
}
}
return ab;
觉望不绝望 2019-12-20
  • 打赏
  • 举报
回复
引用 7 楼 a229397620的回复:
[quote=引用 6 楼 123倔强 的回复:]
[quote=引用 5 楼 a229397620的回复:][quote=引用 4 楼 123倔强 的回复:]
[quote=引用 3 楼 a229397620的回复:][quote=引用 2 楼 123倔强 的回复:]
我要实现的功能是输出通过关键字查询的一行数据,不是要整张表得数据,大佬能教一下吗

啥意思,如果只要一行数据,那就需要唯一标识,age肯定是不能满足[/quote]
number是学号 ,学号是唯一标识,能满足吗[/quote]
可以,那就把where条件换成number就可以了,用1楼的那个方式查询就ok[/quote]
但prepareStatement 对象的executeUpdate()函数不对select 语句进行处理啊,要怎么写这个sql语句呢[/quote]
executeUpdate()方法是插入或者修改用

ResultSet rs = sm1.executeQuery();
Object obj=null
if(rs.next){
obj = new Object();
obj .setUserId(rs.getInt("xxx"));
}
rs.close();
return obj[/quote] 这样写的话就打印整张数据表咯, 还有,不知道setUserId()这个方法,myEclipse 上对这个方法也有异常提示
你看见了吗° 2019-12-20
  • 打赏
  • 举报
回复
引用 6 楼 123倔强 的回复:
[quote=引用 5 楼 a229397620的回复:][quote=引用 4 楼 123倔强 的回复:]
[quote=引用 3 楼 a229397620的回复:][quote=引用 2 楼 123倔强 的回复:]
我要实现的功能是输出通过关键字查询的一行数据,不是要整张表得数据,大佬能教一下吗

啥意思,如果只要一行数据,那就需要唯一标识,age肯定是不能满足[/quote]
number是学号 ,学号是唯一标识,能满足吗[/quote]
可以,那就把where条件换成number就可以了,用1楼的那个方式查询就ok[/quote]
但prepareStatement 对象的executeUpdate()函数不对select 语句进行处理啊,要怎么写这个sql语句呢[/quote]
executeUpdate()方法是插入或者修改用

ResultSet rs = sm1.executeQuery();
Object obj=null
if(rs.next){
obj = new Object();
obj .setUserId(rs.getInt("xxx"));
}
rs.close();
return obj
觉望不绝望 2019-12-20
  • 打赏
  • 举报
回复
引用 5 楼 a229397620的回复:
[quote=引用 4 楼 123倔强 的回复:]
[quote=引用 3 楼 a229397620的回复:][quote=引用 2 楼 123倔强 的回复:]
我要实现的功能是输出通过关键字查询的一行数据,不是要整张表得数据,大佬能教一下吗

啥意思,如果只要一行数据,那就需要唯一标识,age肯定是不能满足[/quote]
number是学号 ,学号是唯一标识,能满足吗[/quote]
可以,那就把where条件换成number就可以了,用1楼的那个方式查询就ok[/quote] 但prepareStatement 对象的executeUpdate()函数不对select 语句进行处理啊,要怎么写这个sql语句呢
你看见了吗° 2019-12-20
  • 打赏
  • 举报
回复
引用 4 楼 123倔强 的回复:
[quote=引用 3 楼 a229397620的回复:][quote=引用 2 楼 123倔强 的回复:]
我要实现的功能是输出通过关键字查询的一行数据,不是要整张表得数据,大佬能教一下吗

啥意思,如果只要一行数据,那就需要唯一标识,age肯定是不能满足[/quote]
number是学号 ,学号是唯一标识,能满足吗[/quote]
可以,那就把where条件换成number就可以了,用1楼的那个方式查询就ok
觉望不绝望 2019-12-20
  • 打赏
  • 举报
回复
引用 3 楼 a229397620的回复:
[quote=引用 2 楼 123倔强 的回复:]
我要实现的功能是输出通过关键字查询的一行数据,不是要整张表得数据,大佬能教一下吗

啥意思,如果只要一行数据,那就需要唯一标识,age肯定是不能满足[/quote] number是学号 ,学号是唯一标识,能满足吗
你看见了吗° 2019-12-20
  • 打赏
  • 举报
回复
引用 2 楼 123倔强 的回复:
我要实现的功能是输出通过关键字查询的一行数据,不是要整张表得数据,大佬能教一下吗

啥意思,如果只要一行数据,那就需要唯一标识,age肯定是不能满足
觉望不绝望 2019-12-19
  • 打赏
  • 举报
回复
我要实现的功能是输出通过关键字查询的一行数据,不是要整张表得数据,大佬能教一下吗
stacksoverflow 2019-12-19
  • 打赏
  • 举报
回复
输出语句要用executeQuery ResultSet rs = sm1.executeQuery(); while(rs.next){ String name = rs.getString("name"); ...... } rs.close(); ......

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧