您的位置:首页 > 编程语言 > Java开发

Java hour 52 Weather

2013-12-01 14:43 218 查看
采用jetty 后,默认的welcome-file-list 配置失效了,直接跳转到了struts2 的control 中去了。

<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>

<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>


修改对应的filter 配置即可,让struts2 只拦截action.

jetty run 还是不错的,实现了热部署。

Requirement 回顾

上章实现了weather 的数据库查询操作。

private void getWeatherInfo() {
Session session = HibernateUtil.getSessionFactory().openSession();
Query query = session.createQuery("select u from Weatherinfo u");
List list = query.list();
session.close();
}


这里有两点要改进

1 是这个查询过程有点累赘,类似于.Net 应该有一份HibernateHelper 之类的东西。

2 这里该为只返回一条记录

先升级为帮助类,再升级被DAO 层。

以下内容大致参考:http://www.docin.com/p-620556454.html

public boolean save(final T t) {
Session session = HibernateUtil.getSessionFactory().openSession();
Transaction tx = session.beginTransaction();
session.save(t);
tx.commit();
session.close();
return true;
}

public boolean delete(final T t) {
Session session = HibernateUtil.getSessionFactory().openSession();
Transaction tx = session.beginTransaction();
session.delete(t);
tx.commit();
session.close();
return true;
}

public boolean update(final T t) {
Session session = HibernateUtil.getSessionFactory().openSession();
Transaction tx = session.beginTransaction();
session.update(t);
tx.commit();
session.close();
return true;
}

@SuppressWarnings("unchecked")
public T queryFrom(final String hql) {
T t = null;
Session session = HibernateUtil.getSessionFactory().openSession();
Transaction tx = session.beginTransaction();
Query query = session.createQuery(hql);
t = (T) query.uniqueResult();
tx.commit();
session.close();
return t;
}

@SuppressWarnings("unchecked")
public List<T> queryList(final String hql) {
List<T> t = null;
Session session = HibernateUtil.getSessionFactory().openSession();
Transaction tx = session.beginTransaction();
Query query = session.createQuery(hql);
t = query.list();
tx.commit();
session.close();
return t;
}


改进我们的查询

private Weatherinfo getWeatherInfo() {
Weatherinfo result = new HibernateQuery<Weatherinfo>().queryFrom("from weatherno w where w.city = '杭州'");
return result;
}

瞬间就发现对于HQL 我是一无所知啊,下一节补上。

Plan List:

1 MySql

2 JVM

3 Java 中的泛型

4 HQL 查询语句
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: