hibernate.Query查询
2015-09-08 19:02
543 查看
通过Hibernate提供的类和方法对数据库进行更深层次的查询。
1.实体类
2.对数据库中数据进行查询
(1)获取对象的所有字段
自定义索引的查询
1.实体类
public class User { //id字段,主键 private int id; //用户名 private String username; //密码 private String userpass; //无参数构造方法 public User(){} //有参数构造方法 public User(int id,String username,String userpass){ this.id=id; this.username=username; this.userpass=userpass; } public int getId() { return id; } //相应的getter setter public void setId(int id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getUserpass() { return userpass; } public void setUserpass(String userpass) { this.userpass = userpass; } }
2.对数据库中数据进行查询
(1)获取对象的所有字段
public static void main(String[] args) { // TODO Auto-generated method stub Session session=null; Transaction tx=null; session=HibernateSessionFactory.getSession(); tx=session.beginTransaction(); //查询整个对象的所有字段 String hql="from User"; Query query=session.createQuery(hql); List<User> list=query.list(); Iterator its=list.iterator(); while(its.hasNext()){ User user=(User)its.next(); System.out.println(user.getId()+" "+user.getUsername()+" "+user.getUserpass()); } }(2)获取单一字段
public static void main(String[] args) { // TODO Auto-generated method stub Session session=null; Transaction tx=null; session=HibernateSessionFactory.getSession(); tx=session.beginTransaction(); //查询整个对象的所有字段 String hql="select id from User"; Query query=session.createQuery(hql); List<java.lang.Integer> list=query.list(); Iterator its=list.iterator(); while(its.hasNext()){ int a=(java.lang.Integer)its.next(); System.out.println(a); } }(3)获取多个字段
public static void main(String[] args) { // TODO Auto-generated method stub Session session=null; Transaction tx=null; session=HibernateSessionFactory.getSession(); tx=session.beginTransaction(); //查询整个对象的所有字段 String hql="select username,userpass from User"; Query query=session.createQuery(hql); List<Object[]> list=query.list(); //iterator遍历 Iterator its=list.iterator(); while(its.hasNext()){ Object[] a=(Object[])its.next(); System.out.println(a[0].toString()+" "+a[1].toString()); } }(4)条件查询
String hql="from User where username=? and userpass=?"; Query query=session.createQuery(hql); //第一种方式 //query.setString(0, "乔丹"); //query.setString(1,"123"); //第二种方式 query.setParameter(0,"乔丹",Hibernate.STRING); query.setParameter(1, "123",Hibernate.STRING); List<User> list=query.list(); for(User user:list){ System.out.println(user.getId()); }
自定义索引的查询
public static void main(String[] args) { // TODO Auto-generated method stub Session session=null; Transaction tx=null; session=HibernateSessionFactory.getSession(); tx=session.beginTransaction(); //查询整个对象的所有字段 String hql1="from User where username=:username and userpass=:userpass"; Query query1=session.createQuery(hql1); //第一种方式 /*query.setString("username","乔丹"); * query.setString("userpass","123") * * */ //第二种凡是,第三个参数确定类型 query1.setParameter("username","乔丹",Hibernate.STRING); query1.setParameter("userpass","123",Hibernate.STRING); List<User> list1=query1.list(); for(User user:list1){ System.out.println(user.getId()); } }
相关文章推荐
- UITextField 使用
- iOS:UITableViewCell自定义单元格
- AbstractQueuedSynchronizer的实现分析(下)
- 解决ios9 中UITableView 的Cell 自动缩进问题
- AbstractQueuedSynchronizer的实现分析(上)
- iOS获取UUID,并使用keychain存储
- hdu 1005 Number Sequence
- Android Bluetooth Stack: Bluedroid(五岁以下儿童):The analysis of A2DP Source
- 实时获取UITextFiled和UIDataPicker等的显示数值
- Netlink Protocol Library Suite (libnl)
- uitableview 刷新一行
- IOS 自动布局指南1 介绍(auto layout guide)
- UVA 11235 Frequent values (RMQ )
- Core Data Programming Guid
- iOS UITabBarController按钮凸起效果实现
- 开源项目分析之UIL
- easyui 模糊匹配解决办法 Firefox不会自动匹配
- guibin
- values语言支持文件命名格式
- Algorithms—95.Unique Binary Search Trees II