JPA Hibernate 利用EntityManager 执行sql语句

分为三种情况:

1.更新,删除 语句

	public void test() {	//更新删除sql语句
		Query query = em.createNativeQuery("update user set age=10 where name = 'lsc'");
		/*Query query = em.createNativeQuery
		("insert into user (name,age,id) values ('zgc',10,99999999999988)");*/
		
		//Query query = em.createNativeQuery("delete from user where name='zgc'");
		
		int rows = query.executeUpdate();
		System.out.println(rows);
	}
	

2.查询语句(返回的是实体类型)

	public void test() {	//查询sql语句
		Query query = em.createNativeQuery("select * from user where name = 'lsc'",User.class);
		List<User> list = query.getResultList();		
		System.out.println(list);
	}

3.复杂查询语句(返回结果不是实体类型,接收为Map类型)

	public void test() {	//查询sql语句
		Query query=
				em.createNativeQuery
				("select u.name,u.age,a.old from user u left join agetoold a on u.age = a.age");
		query.setFirstResult(0);	//设置从第几个结果开始
		query.setMaxResults(4);		//设置显示几个结果
		query.unwrap(NativeQueryImpl.class).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
		List<Map<String,Object>> list = query.getResultList();
		System.out.println(list);
	}

 

Querydsl是一个Java开源框架,用于构建类型安全的SQL查询语句。它提供了一种使用API来构造查询语句的方式,而不是像传统的拼接字符串的方式。可以与HibernateJPA等框架结合使用。 在使用Querydsl执行SQL语句时,可以使用以下步骤: 1. 创建一个JPAQuery对象,传入EntityManager参数,例如:JPAQuery query = new JPAQuery(entityManager); 2. 构建查询语句,可以使用select、from、join、where等方法进行构造。例如,可以使用select方法来选择需要查询的字段,使用from方法来指定查询的表,使用join方法来进行表连接,使用where方法来添加查询条件。 3. 可以使用limit和offset方法来限制查询结果的数量和偏移量。 4. 最后,使用fetch方法来执行查询并获取结果。 以上是一个复杂查询的示例代码,通过使用Querydsl的API来构造查询语句,并使用fetch方法执行查询并获取结果。在这个例子中,使用了select方法选择需要查询的字段,使用from方法指定查询的表,使用leftJoin方法进行表连接,使用where方法添加查询条件,使用limit和offset方法限制查询结果的数量和偏移量。最后,使用fetch方法执行查询并获取结果,遍历结果并将其转化为Map对象进行输出。 通过使用Querydsl的API,可以更方便地构建类型安全的SQL查询语句,并避免了手动拼接字符串的方式带来的错误和不安全性。<span class="em">1</span><span class="em">2</span> #### 引用[.reference_title] - *1* [SQL查询构建工具Querydsl.zip](https://download.csdn.net/download/weixin_39840914/11371139)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [使用QueryDSL补充springDataJpa进行复杂动态sql语句进行sql查询 实现 关联 分页等功能](https://blog.csdn.net/u010838785/article/details/103954941)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值