软件艺术思考者  
混沌,彷徨,立志,蓄势...
公告
日历
<2008年11月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

导航

随笔分类(86)

随笔档案(85)

搜索

  •  

最新评论

阅读排行榜

评论排行榜

 
        hql 是一种近似于sql的db查询语言。但它操作的元素已经由表名变为pojo类名,由表字段变为pojo的属性名。这为程序员彻底的使用类来写程序和查询语句提供了方便。但大多数据程序员可能不知道,写hql查询其实也有它的编辑器,这就是myeclipse提供的 hql edit编辑器。
        怎样来使用hql edit呢?
          1.创建一个hibernate 工程。然后在工程里添加一个hqlTest.hql文件。后缀必须是hql。
          2.右击此文件,打开方式里应该有myeclipse hql editor 选项。如果没有,请在eclipse的首选项里的文件关联里把*.hql编辑器指定为myeclipse hql editor.
         3.打开后的编辑界面应该是下面的样子:

写完后,点击绿色的三角按钮就是查询。结果会出现 在编辑器的下方。如果你的hql没问题的话。
posted on 2008-11-17 14:19 智者无疆 阅读(2379) 评论(3)  编辑  收藏 所属分类: about java
评论:
  • # re: spring service层的测试[未登录]  lijun Posted @ 2008-11-21 12:04
    1.基类
    package com.movo.tv.test;

    import java.io.IOException;
    import java.util.Properties;

    import org.springframework.orm.hibernate3.SessionFactoryUtils;
    import org.springframework.test.AbstractTransactionalDataSourceSpringContextTests;


    import org.apache.log4j.Logger;
    import org.apache.log4j.PropertyConfigurator;
    import org.hibernate.Session;
    import org.hibernate.SessionFactory;

    import com.movo.tv.Constants;
    /*
    * AbstractTransactionalDataSourceSpringContextTests具体事务回滚能力,这样测试数据不会成为脏数据.而且具有open session in test能力
    * 同时也就解决了lazy load 问题.但如果不想回滚的话,得注意每个test*方法结束前加上flushCurrentSession()方法.
    * by zy
    */
    public abstract class BaseServiceTestCase extends AbstractTransactionalDataSourceSpringContextTests {

    protected Logger log = Logger.getLogger(BaseServiceTestCase.class);
    /**
    * @see AbstractTransactionalDataSourceSpringContextTests#getConfigLocations()
    */
    @Override
    protected String[] getConfigLocations() {
    setAutowireMode(AUTOWIRE_BY_NAME);
    this.setDefaultRollback(true);
    Properties properties = new Properties();
    try {
    properties.load(this.getClass().getResourceAsStream("/spring/test/log4j.properties"));
    } catch (IOException e) {
    e.printStackTrace();
    }
    PropertyConfigurator.configure(properties);
    return new String[]{Constants.DEFAULT_CONTEXT, Constants.DEFAULT_TEST_CONTEXT};
    }

    protected void flushCurrentSession(){
    Session session = SessionFactoryUtils.getSession((SessionFactory)applicationContext.getBean("sessionFactory"), false);
    if (session !=null){
    session.flush();
    }
    }
    }

    2.测试类
    -------------------------------------------------
    package com.movo.tv.test.service;

    import java.util.List;

    import com.movo.tv.pojo.City;
    import com.movo.tv.test.BaseServiceTestCase;
    import com.movo.tv.yedian.service.CityService;

    public class TestCityServiceImp extends BaseServiceTestCase {

    CityService cityService;

    public CityService getCityService() {
    return cityService;
    }

    public void setCityService(CityService cityService) {
    this.cityService = cityService;
    }

    public void testCitiesOnLang(){
    Long timeStart_0 =System.currentTimeMillis();
    System.out.println("hibernate首次建立缓存:");
    //System.out.println("############ testCitiesOnLang start :"+timeStart);
    List<City> li_0 = getCityService().citiesOnLang("zh");
    City city;
    for(int i=0;i<li_0.size();i++){
    city=li_0.get(i);
    System.out.print("城市名:"+city.getCityname());
    }
    System.out.println("");
    System.out.println("############ testCitiesOnLang use time :"+(System.currentTimeMillis()-timeStart_0)+" 毫秒");

    Long timeStart =System.currentTimeMillis();
    System.out.println("首次使用hibernate二级缓存查询的情况:");
    System.out.println("############ testCitiesOnLang start :"+timeStart);
    List<City> li = getCityService().citiesOnLang("zh");
    City city1;
    for(int i=0;i<li.size();i++){
    city1=li.get(i);
    System.out.println("城市名:"+city1.getCityname());
    }System.out.println("");
    System.out.println("使用时间 :"+(System.currentTimeMillis()-timeStart)+" 毫秒");

    Long timeStart2 =System.currentTimeMillis();
    System.out.println("第二次使用hibernate二级缓存查询的情况:");
    System.out.println("使用时间 :"+timeStart);
    List<City> li2 = getCityService().citiesOnLang("zh");
    City city2;
    for(int i=0;i<li2.size();i++){
    city2=li2.get(i);
    System.out.println("城市名:"+city2.getCityname());
    }System.out.println("");
    System.out.println("使用时间 :"+(System.currentTimeMillis()-timeStart2)+" 毫秒");
    }



    }
      回复  更多评论   

  • # re: hql editor 的使用[未登录]  lijun Posted @ 2008-11-24 13:48
    //for test
    public static final String DEFAULT_CONTEXT = "classpath*:spring/*.xml";
    public static final String DEFAULT_TEST_CONTEXT = "classpath*:spring/test/*.xml";

    public static final int DEFAULT_PAGE_SIZE = 20;

    public static final String CURRENT_LANGUAGE_SESSIONKEY = "CUL";  回复  更多评论   

  • # 胎教大全:可用飞速tudou下载[未登录]  lijun Posted @ 2008-11-24 13:49
    http://v.ku6.com/special/index_2482375.html  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航:
 
 
Copyright © 智者无疆 Powered by: 博客园 模板提供:沪江博客


   观音菩萨赞