首页 > 编程知识 正文

position:relative,Java根据索引取list

时间:2023-05-03 21:26:07 阅读:36349 作者:639

选择名称,age from user; //本机SQL语句

select u.name,u.age from User u; //JPQL语句

选择u from user u; //JPQL语句

SQL语句在数据库空间中处理字段、列和行

JQL语句在EJB实体空间中是面向对象的,属性进行操作

JPQL必须由JPA的JPQL解析器解析为SQL才能执行。 必须获取查询对象

参数查询

1命名参数查询

entitymanager.create query (' selectufromuseruwhereu.age=http://www.Sina.com/' );

query.setparameter('param ',24 );

列表器结果=(listuser ) query.get result列表);

双位置参数查询

3358 www.Sina.com/selectufromuseruwhereu.age=http://www.Sina.com/http://www.Sina.com /

查询. set parameter (1,24 );

3实体参数(在JPQL中,除了基本类型外,还可以是对象类型)。

3358 www.Sina.com/selectufromuseruwhereu.person=http://www.Sina.com/http://www.Sina.com /

人员p=new人员(;

p.setid(1;

查询. set parameter (1,p );

JPQL运算符

算术运算符- * /

关系运算符===

逻辑运算符between,like,in,is null,is empty,member of,not,and,or

1不

' selectufromuseruwherenot (u.cityid=? 1 ) '

2 between与sql相同

用指定的3合数值列表进行咨询

' selectufromuseruwhereu.cityid in (1,2,3 ) '

4like(_表示一个字符,%表示任意数量的字符) )。

xxxx where u.name like '张% '

5 is null (实体属性是否为空,即实体属性映射中的字段是否为空)。

' selectufromuseruwhereu.cityid is null '

6 isempty (与is null不同,实体的集合属性中是否有元素。

集合对象存在,但集合中没有元素)

selectofromorderowhereo.orderitems isempty

条件查询

1排序查询asc升序desc降序

order by p.age desc,p.birthday asc

2聚合函数查询

返回avg (平均值、双计数)、长最大值、最小值)、和

上述非计数函数的参数对应于一个名为属性的字段,而不是对象

HAVING和WHERE的区别。 一是分组后,再筛选小组; 一种是先筛选,然后将筛选出的记录分组。

构建器查询

' select newcom.jsun.person (p.name ) from Person p )。

如果人员具有此构造函数,即人员(字符串名称)成功返回到对象。

关联查询(实际工作中仍有此需求) ) ) )。

左连接允许右侧实体表达式中的实体为空。 其中实体是指集合属性

inner join的右侧必须存在

' selectofromorderoinnerjoino.orderitems '

在默认查询中,集合属性懒惰加载。 只有在使用时,JPA才会重新发送SQL语句

在调查的时候我们想一次抓住全部怎么办? 使用fetch

(其实left join和inner join主要配合fetch,在这里用于一次抓取。 因为默认值是懒惰的加载)

' selectofromorderoinnerjoinfetcho.orderitems '

排除同一记录DISTINCT

select distinct o from Order o

(也可以与聚合函数一起使用)

例如,选择计数(distinct o ) from Order o

:param

字符串函数

concat(str1,str2) )。

substring (字符串、位置、长度) )。

trim ([ leading ] sub _ strfromstr ) ) ) )。

是upper(str )

是低速(str )

是长度(str )

位置(搜索字符串,init位置) )。

日期、时间函数

CURRENT_DATE //返回当前日期。 这是数据库端的时间。

CURRENT_TIME //返回当前时间

CURRENT_TIMESTAMP //返回当前日期和时间

数学函数

ABS(number )//绝对值

sqrt (编号)//平方根

mod(num,div )//模具

返回size(collection )//集合中的元素数

例如,selectofromorderowheresize (o.items ) 10

"

xxxx in ) )子查询

xxxx not in )子查询

exists )子查询

存在notexists (子查询) exists意味着子查询的结果不空或存在

?1

使用了query接口的两种方法

setmaxresults(int )//通过设定获取的记录数

和setfirstresult(int )//从结果集开始的索引。 默认情况下,索引从0开始

这两个方法都返回Query对象,因此可以配置方法链

query.setmaxresults(max ).setfirstresult (index ).getResultList ) )

"

建议将所有批量操作与不连续的事务隔离。

批量操作可能会导致被管理实体与数据库不匹配

http://www.Sina.com/http://www.Sina.com /

query query=entitymanager.createnativequery (' { call pro _1)? () );

query.setparameter(1,' jsun ';

//无返回值存储过程

query.executeUpdate (;

//返回单个值的存储过程

stringresult=(string ) query.getSingleResult );

//返回所有列的存储过程

listuserresults=(listuser ) query.getResultList );

//返回某些列的存储过程

listobject [ ] results=(listobject [ ] ) query.getResultList (;

for(object[]row:results ) {

row[0],row[1]

}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。