hibernate问题

血冰飝 2011-08-15 02:55:35
public Query createQuery(String hql, Object... values) {
Assert.hasText(hql);
Query query = getSession().createQuery(hql);
for (int i = 0; i < values.length; i++) {
query.setParameter(i, values[i]);
}
return query;
}

本人新手 求教上面那些代码什么意思
还有为什么object后面有三个.
...全文
133 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
[Quote=引用楼主 feizhang666 的回复:]
public Query createQuery(String hql, Object... values) {
Assert.hasText(hql);
Query query = getSession().createQuery(hql);
for (int i = 0; i < values.length; i++) {
query.setParameter(i, values[i]……
[/Quote]

Assert.hasText(hql);


这是程序里的一个断言,用来判断SQL语言是否为空。如果是空的那么程序就会报错,出现异常。

但不推荐用这种方式,如果用不好,程序将会有严重的隐患
guoyang842 2011-08-15
  • 打赏
  • 举报
回复
[Quote=引用楼主 feizhang666 的回复:]
public Query createQuery(String hql, Object... values) {
Assert.hasText(hql);
Query query = getSession().createQuery(hql);
for (int i = 0; i < values.length; i++) {
query.setParameter(i, values[i]……
[/Quote]
Object... values 代表不限制参数,也就是说,调用createQuery()方法的时候除了hql这个参数是必须得,后面可以不带一个参数,也可以带n个参数。
Query query = getSession().createQuery(hql);
是hibernate的查询语句

循环的意思是:读取hql后面参数的个数,进行循环,然后逐个赋值赋值,通常是hql语句中带?的语句,第一个下表为0,一次+1往后类推来赋值
Assert.hasText(hql);
可以看做是一种处理高级异常的方式,在断言某个对象可能出现异常的时候,可以用Assert类来做判断
忧郁的苦笑 2011-08-15
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 liuyuhua0066 的回复:]
Assert.hasText(hql);

Assert应该是一个工具类,而hasText应该是其一个静态方法,估计是用于判断hql是否为空或null。



我感觉也是
liuyuhua0066 2011-08-15
  • 打赏
  • 举报
回复
Assert.hasText(hql);

Assert应该是一个工具类,而hasText应该是其一个静态方法,估计是用于判断hql是否为空或null。

你可以跟踪下Assert这个类。
血冰飝 2011-08-15
  • 打赏
  • 举报
回复
没人告诉我第二行是干吗的?
剑神一笑 2011-08-15
  • 打赏
  • 举报
回复
Object... values
可变参数
忘记叫什么了 反正就是这个方法带的参数没有限制
(String hql, Object values, Object values1, Object values2。。)
可以带N个object类型的参数

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧