java如何循环查数据库同一张表?

现在数据库里有张表People有姓名编码A和上级所属编码B,B=A,但是肯定同一个人的B不等于A,我现在需要根据张三的编码A去查询他下面所属他的所有人,select*fr... 现在数据库里有张表People 有 姓名 编码A 和上级所属编码B,B=A,但是肯定同一个人的B不等于A,我现在需要根据张三的编码A去查询他下面所属他的所有人,select * from People where B=A,这个时候查询到张三的下属若干人,因为张三下属的也有下属若干人,在根据编码A,再次查询,然后一直查询去下,直到查询查询为空,如何在java里写逻辑语句,求大佬 展开
 我来答
匿名用户
2019-06-17
展开全部
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
//stmt.executeUpdate("create table People(name varchar(255),A int,B int)");
//stmt.executeUpdate("insert into People values('张三',1,0)");
//stmt.executeUpdate("insert into People values('李四',2,1)");
//stmt.executeUpdate("insert into People values('王五',3,1)");
//stmt.executeUpdate("insert into People values('赵云',4,2)");
//stmt.executeUpdate("insert into People values('张飞',5,3)");
public class Test {
private static void query(Connection conn,String sql,int a) {
PreparedStatement stmt = null;
ResultSet rs = null;
try {
stmt = conn.prepareStatement(sql);
stmt.setInt(1, a);
rs = stmt.executeQuery();
while (rs.next()) {
System.out.println(rs.getString("name")+":"+rs.getInt("A"));
query(conn,sql,rs.getInt("A"));
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (rs != null) {
try {
rs.close();
rs=null;
System.out.println(a+":rs closed.");
} catch (SQLException e) {
e.printStackTrace();
}
}
if (stmt != null) {
try {
stmt.close();
stmt=null;
System.out.println(a+":stmt closed.");
} catch (SQLException e) {
e.printStackTrace();
}
}
}
System.out.println("===============================");
}
public static void main(String[] args) {
Connection conn = null;
try {
conn = DriverManager.getConnection("jdbc:derby:E:/Derby/test");
String sql="select * from people where B=?";
query(conn,sql, 1);
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (conn != null) {
try {
conn.close();
System.out.println("Connection关闭。");
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式