SSH与SSM学习之hibernate15——SQL原生查询
一、原生查询说明
原生查询我们只要使用到的方法是:
//执行原生的sql
session.createSQLQuery(sql)
//指定将结果集封装到哪个对象中
query.addEntity(User.class);
//添加参数
query.setParameter(0,1);
二、基本查询
2.1 示例代码
/**
* Sql基本查询
*/
@Test
public void sqlBaseDemo(){
//1.创建session
Session session = HibernateUtils.openSession();
//------------------基本查询---------------
//2.写sql语句
String sql = "select * from tb_user2";
//3.创建sql查询对象
SQLQuery query = session.createSQLQuery(sql);
//4.指定将结果集封装到哪个对象中
query.addEntity(User.class);
//5.查询结果
List<User> users = query.list();
System.out.println(users);
//-----------------------------------------
//6.关闭资源
session.close();
}
2.2 查询结果
Hibernate:
select
*
from
tb_user2
[User{id=1, name='小明', age=20}, User{id=2, name='xiaoming', age=19}, User{id=3, name='mingming', age=22}, User{id=4, name='mingge', age=20}, User{id=5, name='xx', age=99}, User{id=6, name='wiming', age=20}]
三、条件查询
3.1 示例代码
/**
* sql 条件查询
*/
@Test
public void sqlConditionDemo(){
//1.创建session
Session session = HibernateUtils.openSession();
//------------------条件查询---------------
//2.写sql语句
String sql = "select * from tb_user2 where id=?";
//3.创建sql查询对象
SQLQuery query = session.createSQLQuery(sql);
//4.指定将结果集封装到哪个对象中
query.addEntity(User.class);
//5.添加参数
query.setParameter(0,1);
//6.查询结果
List<User> users = query.list();
System.out.println(users);
//-----------------------------------------
//7.关闭资源
session.close();
}
3.2 查询结果
Hibernate:
select
*
from
tb_user2
where
id=?
[User{id=1, name='小明', age=20}]
四、分页查询
4.1 示例代码
/**
* Sql分页
*/
@Test
public void sqlPageDemo(){
//1.创建session
Session session = HibernateUtils.openSession();
//------------------分页查询---------------
//2.写sql语句
String sql = "select * from tb_user2 limit ?,? ";
//3.创建sql查询对象
SQLQuery query = session.createSQLQuery(sql);
//4.指定将结果集封装到哪个对象中
query.addEntity(User.class);
//5.添加参数
query.setParameter(0,0);
query.setParameter(1,3);
//6.查询结果
List<User> users = query.list();
System.out.println(users);
//-----------------------------------------
//7.关闭资源
session.close();
}
4.2 查询结果
Hibernate:
select
*
from
tb_user2 limit ?,
?
[User{id=1, name='小明', age=20}, User{id=2, name='xiaoming', age=19}, User{id=3, name='mingming', age=22}]