java

位置:IT落伍者 >> java >> 浏览文章

用hibernate查询一段时间的记录


发布日期:2024年06月10日
 
用hibernate查询一段时间的记录

这是在一个群里讨论的问题

方法很多如果说数据库中数据的存储是用date类型的话改怎么做如果说做数据迁移的话又该怎么做?

最终的讨论方案在用字符串存储格式上比较好毕竟各个数据库对时间的存储存在差异

一下是我用hibernate中的HQL和QBC两种检索方式对一段时间内的数据进行检索

packagecomdudulili;

importjavautilDate;

importjavautilIterator;

importjavautilList;

importorghibernateCriteria;

importorghibernateSession;

importorghibernateTransaction;

importorghibernatecriterionCriterion;

importorghibernatecriterionExpression;

publicclassSelect{

/**

*@paramargs

*/

publicstaticvoidmain(String[]args){

//TODOAutogeneratedmethodstub

Sessionsession=HibernateSessionFactorygetSession();

Transactiontran=sessionbeginTransaction();

/*

*采用HQL的方式

Datebegin=javasqlDatevalueOf();

Dateend=javasqlDatevalueOf();

List<A>result=sessioncreateQuery(fromAawhereadate>:beginTimeandadate<=:endTime)setTimestamp(beginTimebegin)setTimestamp(endTimeend)list();

for(Aa:result){

Systemoutprintln(agetId());

Systemoutprintln(agetTitle());

Systemoutprintln(agetDate());

}

*/

//采用QBC的方式

Datebegin=javasqlDatevalueOf();

Dateend=javasqlDatevalueOf();

Criteriacriteria=sessioncreateCriteria(AbstractAclass);

Criterioncreterion=Expressionbetween(datebeginend);

List<A>result=criteriaadd(creterion)list();

for(Aa:result){

Systemoutprintln(agetId());

Systemoutprintln(agetTitle());

Systemoutprintln(agetDate());

}

}

}

               

上一篇:Struts2分页实现源码

下一篇:Spring事务管理高级应用难点剖析(4)