试试这样:
select avg(length(columnName)) from tableName
直接就得到平均长度了
我的经验是,能用SQL语句解决的计算,决不用java解决
因为两者的运行效率差得太多了

解决方案 »

  1.   

    我在为公司写一个控件,在写控件的过程中遇到这个问题,所以用SQL语句是不现实的; bjzhanghao(八进制)说截断,问题是截断以后,用户想看被...替代的内容又怎样解决?还有,每列的宽度也不一样,按多长来截断才算合适呢(这才是问题的关键)?
    所以请大家多多提出自己的见解。考虑时要注意,我是在写一个控件,要从Java程序方面解决。
      

  2.   

    可以设置用户鼠标放在被截断的文本上就显示全部内容。
    JTable缺省是可以调整每列宽度的,用户也会根据自己的需要把想看的列变宽,而且每个用户关心的数据不一样,你不太可能找到一个合适的列宽设置啊。
    按多长截断,要根据数据自己估计一下,比如姓名用100左右,日期时间型的用150左右,电子邮件用200左右,等等。
      

  3.   

    bjzhanghao(八进制) 与我所见略同,我现在就是设置用户鼠标放在被截断的文本上就显示全部内容。你说的很对,每个用户关心的数据不一样,对程序而言,每列的数据类型也不一样,我现在写的控件就是,要用一个合适的列宽值去改变JTable缺省的可以调整的默认值。
    我现在是算出一列的平均值,用这个平均值去设置首选列宽,在数据量少时还可以,数据一多,呵呵...效率就很成问题了。
    我在不断努力中...不知道有没有解决它的方法???:(