还望高人来指导下。
一个递归读取分销商树的方法,麻烦了麻烦了
private void readClientTree(Connection conn, int id, int level)
throws SQLException {
String sql = "select * from t_client where pid=?";
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, id);
rs = pstmt.executeQuery();
while (rs.next()) {
sbTreeHTML.append("<div>");
sbTreeHTML.append("\n");
for (int i=0; i<level; i++) {
sbTreeHTML.append("<img src=\"../images/white.gif\">");
sbTreeHTML.append("\n");
}
//if ("N".equals(rs.getString("is_leaf"))) {
if (Constants.NO.equals(rs.getString("is_leaf"))) {
sbTreeHTML.append("<img alt=\"展开\" style=\"cursor:hand;\" onClick=\"display('" + rs.getInt("id") + "');\" id=\"img" + rs.getInt("id") + "\" src=\"../images/plus.gif\">");
sbTreeHTML.append("\n");
sbTreeHTML.append("<img id=\"im" + rs.getInt("id") + "\" src=\"../images/closedfold.gif\">");
sbTreeHTML.append("\n");
sbTreeHTML.append("<a href=\"client_node_crud.jsp?id=" + rs.getInt("id") + "\" target=\"clientDispAreaFrame\">" + rs.getString("name") + "</a>");
sbTreeHTML.append("\n");
sbTreeHTML.append("<div style=\"display:none;\" id=\"div" + rs.getInt("id") + "\">");
sbTreeHTML.append("\n");
readClientTree(conn, rs.getInt("id"), level + 1);
sbTreeHTML.append("</div>");
sbTreeHTML.append("\n");
}else {
sbTreeHTML.append("<img src=\"../images/minus.gif\">");
sbTreeHTML.append("\n");
sbTreeHTML.append("<img src=\"../images/openfold.gif\">");
sbTreeHTML.append("\n");
//if ("Y1".equals(rs.getString("is_client"))) {
if (Constants.YES.equals(rs.getString("is_client"))) {
sbTreeHTML.append("<a href=\"client_crud.jsp?id=" + rs.getInt("id") + "\" target=\"clientDispAreaFrame\">" + rs.getString("name") + "</a>");
}else {
sbTreeHTML.append("<a href=\"client_node_crud.jsp?id=" + rs.getInt("id") + "\" target=\"clientDispAreaFrame\">" + rs.getString("name") + "</a>");
}
sbTreeHTML.append("\n");
}
sbTreeHTML.append("</div>");
sbTreeHTML.append("\n");
}
}finally {
DbUtil.close(rs);
DbUtil.close(pstmt);
}
}
8 个解决方案
#1
因为加入了 HTML标记 自己改了改了乱了……
#2
hibernate只是操作数据库简单而已,如果楼主是想让代码简单些,就用struts2吧,看你写那么多html哥蛋疼了
#3
直接将idBc换成hibernate就可以了 写相应的映射 配置文件
#4
分层,你hibernate后台dao层写个方法,根据pid去查询t_client信息
然后在service层写个方法
private void readClientTree(int id, int level) {
//加载client信息
Client c=ClientDAO.findByPid(id);
//下面的代码直接把那一堆拷过来,rs.getXXX("X")换成c.getX()就行啦
}
然后在service层写个方法
private void readClientTree(int id, int level) {
//加载client信息
Client c=ClientDAO.findByPid(id);
//下面的代码直接把那一堆拷过来,rs.getXXX("X")换成c.getX()就行啦
}
#5
对了 pid不是主键
是的 4L 我的想法和你的差不多
实现的时候 还有点问题 我再研究研究
是的 4L 我的想法和你的差不多
实现的时候 还有点问题 我再研究研究
#6
用个s2sh框架 ,给整合了。 把我看的头大了
#7
原来的是一个 while循环
改了以后 怎么实现?
改了以后 怎么实现?
#8
我写了一下 各种空指针啊 帮忙看看
里面的t_client 对应Client对象
我这样写调的时候空指针了
/**
* 读取树
*
* @param id
* @param level
*/
public void readTree(final int id, int level) {
List returnList = this.getHibernateTemplate().executeFind(
new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Query query = session
.createQuery("select * from t_client where pid=?");
query.setParameter(0, id);
return query.list();
}
});
for (Object object : returnList) {
System.out.println(object);
}
}
里面的t_client 对应Client对象
我这样写调的时候空指针了
#1
因为加入了 HTML标记 自己改了改了乱了……
#2
hibernate只是操作数据库简单而已,如果楼主是想让代码简单些,就用struts2吧,看你写那么多html哥蛋疼了
#3
直接将idBc换成hibernate就可以了 写相应的映射 配置文件
#4
分层,你hibernate后台dao层写个方法,根据pid去查询t_client信息
然后在service层写个方法
private void readClientTree(int id, int level) {
//加载client信息
Client c=ClientDAO.findByPid(id);
//下面的代码直接把那一堆拷过来,rs.getXXX("X")换成c.getX()就行啦
}
然后在service层写个方法
private void readClientTree(int id, int level) {
//加载client信息
Client c=ClientDAO.findByPid(id);
//下面的代码直接把那一堆拷过来,rs.getXXX("X")换成c.getX()就行啦
}
#5
对了 pid不是主键
是的 4L 我的想法和你的差不多
实现的时候 还有点问题 我再研究研究
是的 4L 我的想法和你的差不多
实现的时候 还有点问题 我再研究研究
#6
用个s2sh框架 ,给整合了。 把我看的头大了
#7
原来的是一个 while循环
改了以后 怎么实现?
改了以后 怎么实现?
#8
我写了一下 各种空指针啊 帮忙看看
里面的t_client 对应Client对象
我这样写调的时候空指针了
/**
* 读取树
*
* @param id
* @param level
*/
public void readTree(final int id, int level) {
List returnList = this.getHibernateTemplate().executeFind(
new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Query query = session
.createQuery("select * from t_client where pid=?");
query.setParameter(0, id);
return query.list();
}
});
for (Object object : returnList) {
System.out.println(object);
}
}
里面的t_client 对应Client对象
我这样写调的时候空指针了