易截截图软件、单文件、免安装、纯绿色、仅160KB

java树形结构 算法

最近看到一个有意思的树形结构,为每个节点添加了lft

rgt
两个属性。这样查找该节点的子节点、
查找该节点所有父节点,就不用去递归查询,只需要用
between

and
语句就可以实现。下面以创建一个栏目树为例,以下是我的理解。
  一般来讲,我们创建栏目树的时候,大多只需要一个外键parentid
来区分该节点属于哪个父节点。数据库的设计如下图:
这样一来,
1.查找该节点的所有子节点,则需要采用
sql
的递归语句:
Sql代码 < type="application/x-shockwave-flash" width="14" height="15" src="http://www.javaeye.com/javascripts/syntaxhighlighter/clipboard_new.swf" src="http://www.javaeye.com/javascripts/syntaxhighlighter/clipboard_new.swf" flashvars="clipboard=select%20*%20from%20tableName%20connect%20by%20prior%20id%3Dsj_parent_id%20start%20with%20%20id%3D1" quality="high" allowscriptaccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" width="14" height="15">
select
 * 
from
 tableName 
connect
 
by
 
prior
 id=sj_parent_id start 
with
  id=1  
select * from tableName connect by prior id=sj_parent_id start with id=1
 (
oracle 写法,
mysql
目前不支持,如果
mysql
想查找树形,可以利用存储过程
).
2.查找该节点的父节点

sql
递归语
句:
Sql代码 < type="application/x-shockwave-flash" width="14" height="15" src="http://www.javaeye.com/javascripts/syntaxhighlighter/clipboard_new.swf" src="http://www.javaeye.com/javascripts/syntaxhighlighter/clipboard_new.swf" flashvars="clipboard=select%20*%20from%20tableName%20connect%20by%20prior%20sj_parent_id%20%3Did%20start%20with%20%20id%3D1" quality="high" allowscriptaccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" width="14" height="15">
select
 * 
from
 tableName 
connect
 
by
 
prior
 sj_parent_id =id start 
with
  id=1  
select * from tableName c


相关文档:

传智播客java学习 EJB3进阶


我今天学习了徐老师讲的EJB3的知识,我做了简单的笔记:
      
       SLSB无状态会话Bean的编程规则;
EJB类
编程规则
  至少有一个业务接口
  必须是具体类.不能是final或抽象的.
  必须有空构造
  可以是其它sessionbean或p ......

Java 使用SSH框架开发Jsp 方便,快捷,简单

Impl
public class BaseDAOImpl extends HibernateDaoSupport implements IBaseDAO
 //添加数据
 this.getHibernateTemplate().save(achi);
 //删除
 this.getHibernateTemplate().delete(this.getById(achi));
 //查询所有
return this.getHibernateTemplate().find("from Achievement a ......

从今天开始,把java从头至尾好好的梳理一遍!

学java也将近快两年的时间了,之前学过的东西自己感觉有点模糊,理论掌握的不是很透彻,有些问题解决的也不是很全面,为此在大学毕业前夕,想把知识好好的梳理一下,把自己对技术的疑点和一些研究心得写到csdn博客上。 ......

Java面试题一(基础)

1. 如何得到Java应用程序的可用内存?
答:如下代码实现取得总的内存大小和可用内存大小,并打印到控制台上
public class MemoryExp {
public static void main(String[] args) {
System.out.println("Total Memory"+Runtime.getRuntime().totalMemory());
System.out.println("Free Memory ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号