web开发的一些问题(java方向)
1. 分页的解决方案,通用性,分页时参数丢失问题,如何解决?
2. Hibernate优化问题。如何优化数据库访问,使程序访问数据库更优化。
初用HIBERNATE的人也许都遇到过性能问题,实现同一功能,用HIBERNATE与用JDBC性能相差十几倍很正常,如果不及早调整,很可能影响整个项目的进度。
大体上,对于HIBERNATE性能调优的主要考虑点如下:
* 数据库设计调整
* HQL优化
* API的正确使用(如根据不同的业务类型选用不同的集合及查询API)
* 主配置参数(日志,查询缓存,fetch_size, batch_size等)
* 映射文件优化(ID生成策略,二级缓存,延迟加载,关联优化)
* 一级缓存的管理
* 针对二级缓存,还有许多特有的策略
* 事务控制策略。
1、 数据库设计
a) 降低关联的复杂性
b) 尽量不使用联合主键
c) ID的生成机制,不同的数据库所提供的机制并不完全一样
d) 适当的冗余数据,不过分追求高范式
2、 HQL优化
HQL如果抛开它同HIBERNATE本身一些缓存机制的关联,HQL的优化技巧同普通的SQL优化技巧一样,可以很容易在网上找到一些经验之谈。
3、 主配置
a)
查询缓存,同下面讲的缓存不太一样,它是针对HQL语句的缓存,即完全一样的语句再次执行时可以利用缓存数据。但是,查询缓存在一个交易系统(数据变更频繁,查询条件相同的机率并不大)中可能会起反作用:它会白白耗费大量的系统资源但却难以派上用场。
b) fetch_size,同JDBC的相关参数作用类似,参数
相关文档:
java计算时间差
文章分类:Java编程
比如:现在是2004-03-26 13:31:40
过去是:2004-01-02 11:30:24
我现在要获得两个日期差,差的形式为:XX天XX小时XX分XX秒
方法一:
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try
{
Date d1 = df.parse("2004-03-26 13:31:40");
......
volatile关键字有什么用?
恐怕比较一下volatile和synchronized的不同是最容易解释清楚的。volatile是变量修饰符,而synchronized则作用于一段代码或方法;看如下三句get代码:
int i1; ......
public class OperatExcel
{
private File file = new File(ParamenterInit.SRCEXCELPATH);
private File outfile = new File(ParamenterInit.DESTEXCELPATH);
private static String sheetName = ParamenterInit.SHEETNAME;
  ......
Java下的一个简单易用的反编译工具jad
,
可以很方便的将.class反编译为.Java.
一、基本用法
Usage:jad
[option(s)]
直接输入类文件名,且支持通配符,如下所示。
c:\Java\>jad
example1.class
c:\Java\>jad
*.class
结果是将example1.class反编译为example1.jad
。将
example1.jad
改为exampl ......
umlet 使用java编写的一款小型uml工具,可以作为eclipse的插件安装,也可以独立运行。
umlet真可谓短小精悍,非常之小,容易上手,我喜欢这样简单实用的软件。
umlet不支持反向等高级功能。
UMLet is a UML tool aimed at providing a fast way of creating UML diagrams. UML elements are modified using text input i ......