导读:
开发环境:MyEclips 5.01GA
数据库:MySql 5.01
服务器:Tomcat 6(服务器版本关系不大)
关键解决的问题:1).模糊查询 2).数据提取的分页
----------------------------------------------------------------------------------------------------------------------------------
1.按顺序添加3种MyEclipse的支持
--------------------------------------
|Struts-->Hibernate-->Spring|
--------------------------------------
1).Struts的注意事项: 最好重写ActionServlet,要不然Web运行期间会出现中文问题
方法:
(1).在 com.yourcompany.struts 下建立个名为MyActionServlet的类,该类的写法如下
-------------------------------------------------------------------
package com.yourcompany.struts;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionServlet;
public class MyActionServlet extends ActionServlet
{
protected void process(HttpServletRequest arg0, HttpServletResponse arg1) throws IOException, ServletException
{
arg0.setCharacterEncoding("GB2312");
arg1.setCharacterEncoding("GB2312");
super.process(arg0, arg1);
}
}
-------------------------------------------------------------------
(2).打开web.xml,把
org.apache.struts.action.ActionServlet
改成
com.yourcompany.struts.MyActionServlet
2).Hibernate的注意事项: 按照向导一顿生成,到最后一步要选覆盖原先类库("R"打头的那个按钮)
(1).推荐在hibernate.cfg.xml文件下的
中添加
true
(2).如果是Ms Sql Server数据库,如果没在连接字符串中指定数据库,那么要在
中添加
这里填写要访问的数据库
3).Spring的注意事项:
(1).添加Spring支持的时候要选4项,前3行+最后1行
(2).在提示SessionFactory Id 什么的那个地方,填写SessionFactory
(3).然后Hibernate Reverse Engineering(就是各种生成),注意
Hibernate mapping file
Java Data Object
Java Data Access Object
这3都要选上 而且Java Data Access Object要选Spring DAO
(4).生成一些文件,要修改:
打开表名.hbm.xml这个文件,找到catalog="数据库名"这个东东,删除!!! 记住!千万要删除! 不然报错!!!
(5)接下来是关键了
修改表名DAO.java
1.找到public List findByProperty(String propertyName, Object value)函数
把
String queryString = "from 表名 as model where model."+ propertyName + "= ?";
改成
String queryString = "from 表名 as model where model." + propertyName + " like ?";
特别注意!!! like前有个 "空格" !!!!!!
这样就解决了模糊查询的问题了!!!
(6)新建2个方法,分别为
-------------------------------------------------------------------
public List findByProperty(String propertyName, Object value,int firstRow,int maxRow)
{
log.debug("finding Theuser instance with property and firstRow and maxRow: " + propertyName + ", value: " + value);
try
{
String queryString = "from 表名 as model where model." + propertyName + " like ?";
FenYeHibernateCallback callback = new FenYeHibernateCallback(queryString,firstRow,maxRow);
return getHibernateTemplate().executeFind(callback);
}
catch (RuntimeException re){log.error("find by property name failed", re);throw re;}
}
public List findByProperty(int firstRow,int maxRow)
{
log.debug("finding Theuser instance with All");
try
{
String queryString = "from 表名 as model";
FenYeHibernateCallback callback = new FenYeHibernateCallback(queryString,firstRow,maxRow);
return getHibernateTemplate().executeFind(callback);
}
catch (RuntimeException re){log.error("find All has Error", re);throw re;}
}
-------------------------------------------------------------------
然后在com.yourcampany.modle中新建一个类
-------------------------------------------------------------------
import java.sql.SQLException;
import java.util.List;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.springframework.orm.hibernate3.HibernateCallback;
public class FenYeHibernateCallback implements HibernateCallback
{
private String hql_Str = null;
private int first_Row;
private int max_Rows;
public FenYeHibernateCallback(String hqlStr,int firstRow,int maxRows)
{
this.hql_Str = hqlStr;
this.first_Row = firstRow;
this.max_Rows = maxRows;
}
public Object doInHibernate(Session s) throws HibernateException,SQLException
{
Query query = s.createQuery(this.hql_Str);
query.setFirstResult(this.first_Row);
query.setMaxResults(this.max_Rows);
List list = query.list();
return list;
}
}
-------------------------------------------------------------------
这样就解决了分页查询问题!!!
Trackback: http://tb.blog.youkuaiyun.com/TrackBack.aspx?PostId=2089069
本文转自
http://blog.youkuaiyun.com/joliny/archive/2008/02/12/2089069.aspx
开发环境:MyEclips 5.01GA
数据库:MySql 5.01
服务器:Tomcat 6(服务器版本关系不大)
关键解决的问题:1).模糊查询 2).数据提取的分页
----------------------------------------------------------------------------------------------------------------------------------
1.按顺序添加3种MyEclipse的支持
--------------------------------------
|Struts-->Hibernate-->Spring|
--------------------------------------
1).Struts的注意事项: 最好重写ActionServlet,要不然Web运行期间会出现中文问题
方法:
(1).在 com.yourcompany.struts 下建立个名为MyActionServlet的类,该类的写法如下
-------------------------------------------------------------------
package com.yourcompany.struts;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionServlet;
public class MyActionServlet extends ActionServlet
{
protected void process(HttpServletRequest arg0, HttpServletResponse arg1) throws IOException, ServletException
{
arg0.setCharacterEncoding("GB2312");
arg1.setCharacterEncoding("GB2312");
super.process(arg0, arg1);
}
}
-------------------------------------------------------------------
(2).打开web.xml,把
org.apache.struts.action.ActionServlet
改成
com.yourcompany.struts.MyActionServlet
2).Hibernate的注意事项: 按照向导一顿生成,到最后一步要选覆盖原先类库("R"打头的那个按钮)
(1).推荐在hibernate.cfg.xml文件下的
中添加
true
(2).如果是Ms Sql Server数据库,如果没在连接字符串中指定数据库,那么要在
中添加
这里填写要访问的数据库
3).Spring的注意事项:
(1).添加Spring支持的时候要选4项,前3行+最后1行
(2).在提示SessionFactory Id 什么的那个地方,填写SessionFactory
(3).然后Hibernate Reverse Engineering(就是各种生成),注意
Hibernate mapping file
Java Data Object
Java Data Access Object
这3都要选上 而且Java Data Access Object要选Spring DAO
(4).生成一些文件,要修改:
打开表名.hbm.xml这个文件,找到catalog="数据库名"这个东东,删除!!! 记住!千万要删除! 不然报错!!!
(5)接下来是关键了
修改表名DAO.java
1.找到public List findByProperty(String propertyName, Object value)函数
把
String queryString = "from 表名 as model where model."+ propertyName + "= ?";
改成
String queryString = "from 表名 as model where model." + propertyName + " like ?";
特别注意!!! like前有个 "空格" !!!!!!
这样就解决了模糊查询的问题了!!!
(6)新建2个方法,分别为
-------------------------------------------------------------------
public List findByProperty(String propertyName, Object value,int firstRow,int maxRow)
{
log.debug("finding Theuser instance with property and firstRow and maxRow: " + propertyName + ", value: " + value);
try
{
String queryString = "from 表名 as model where model." + propertyName + " like ?";
FenYeHibernateCallback callback = new FenYeHibernateCallback(queryString,firstRow,maxRow);
return getHibernateTemplate().executeFind(callback);
}
catch (RuntimeException re){log.error("find by property name failed", re);throw re;}
}
public List findByProperty(int firstRow,int maxRow)
{
log.debug("finding Theuser instance with All");
try
{
String queryString = "from 表名 as model";
FenYeHibernateCallback callback = new FenYeHibernateCallback(queryString,firstRow,maxRow);
return getHibernateTemplate().executeFind(callback);
}
catch (RuntimeException re){log.error("find All has Error", re);throw re;}
}
-------------------------------------------------------------------
然后在com.yourcampany.modle中新建一个类
-------------------------------------------------------------------
import java.sql.SQLException;
import java.util.List;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.springframework.orm.hibernate3.HibernateCallback;
public class FenYeHibernateCallback implements HibernateCallback
{
private String hql_Str = null;
private int first_Row;
private int max_Rows;
public FenYeHibernateCallback(String hqlStr,int firstRow,int maxRows)
{
this.hql_Str = hqlStr;
this.first_Row = firstRow;
this.max_Rows = maxRows;
}
public Object doInHibernate(Session s) throws HibernateException,SQLException
{
Query query = s.createQuery(this.hql_Str);
query.setFirstResult(this.first_Row);
query.setMaxResults(this.max_Rows);
List list = query.list();
return list;
}
}
-------------------------------------------------------------------
这样就解决了分页查询问题!!!
Trackback: http://tb.blog.youkuaiyun.com/TrackBack.aspx?PostId=2089069
本文转自
http://blog.youkuaiyun.com/joliny/archive/2008/02/12/2089069.aspx