在hibernate中,对数据库的增删改操作以及HQL查询与QBC查询的语句的编写语法
来源:互联网 发布:淘宝正品运动鞋货源 编辑:程序博客网 时间:2024/05/17 22:40
在hibernate中,对数据库的增删改操作以及HQL查询与QBC查询的语句的编写语法
Hibernate框架是当今主流的持久层框架之一,它的灵活性比较好,可以减少程序的代码量。Hibernate是开放源码的orm(object relation mapping对象关系映射),它对JDBC进行了轻量级的封装,hibernate可以自动生成SQL语句,自动执行,使得java程序员可以随心所欲的使用对象变成思维来操作数据库。
首先获取Session,通过Session来调用相关的方法,进行增删改查
//加载核心配置文件Configuration cfg = new Configuration().configure();//创建会话工厂,用户缓存配置的信息。SessionFactory factory = cfg.buildSessionFactory();//获得一个sessionSession session=factory.openSession();//开启事务Transaction tx = session.beginTransaction();//写对数据库的操作语句//释放资源session.close();//提交事务tx.commit();
下面的语句都写在数据库的操作语句的地方。
(1)、删除语句
Customer cu = session.get(Customer.class, cust_id);//删除前要先查询,验证oidsession.delete(cu);(2)、修改语句
Customer cu=new Customer();cu.setCid(1);cu.setCname("哈哈");session.update(cu);//修改cid为1的用户,把他的名字改为哈哈(3)、添加语句
Customer cu=new Customer();//cid为自动递增,所以不用设置值cu.setCname("哈哈");cu.setAge(18);session.save(cu);(4)、hql查询语句
query有两个方法list()(查询多条记录)或uniqueResult()(查询一条记录)方法执行查询。
//基本查询: 这里面的Customer对象实体类的名称,cid为实体类的属性Query query=session.createQuery("from Customer");List<Customer> cList=query.list();//条件查询:Query query=session.createQuery("from Customer where cid=?");query.setParameter(0,2);Customer cu=query.uniqueResult();//分页查询:Query query=session.createQuery("from Customer");query.setFirstResult(2);//开始索引query.setMaxResults(2);//一页的记录数List<Customer> cList=query.list();//排序查询:Query query=session.createQuery("from Customer order by cid desc");List<Customer> cList=query.list();//统计查询:Query query=session.createQuery(" select count(*) from Customer");Object count=query.uniqueResult();//返回的真实类型为long//投影查询Query query=session.createQuery("select cid,cname from Customer ");List<Object[] > cList=query.list();
(5)、QBC查询语句Criteria比hql语句查询更加的面向对象。
//普通查询:Criteria c=Session.createCriteria(Customer.class)//它就相当于hql中的from CustomerList list=c.list();//条件查询:Criteria c=Session.createCriteria(Customer.class);c.add(Restriction.eq(“cid”,1));Customer customer=(Customer)c.uniqueResult();//分页查询:Criteria c=Session.createCriteria(Customer.class);c.setFirstResult(0);c.setMaxResult(2);List list=c.list();//排序查询Criteria c=Session.createCriteria(Customer.class);c.addOrder(Order.desc(“cid”));//降序//c.addOrder(Order.asc(“cid”));//升序List list=c.list();//统计查询Criteria c=Session.createCriteria(Customer.class);c.setProjection(Projections.count(“cid”));Long total=(Long) c.uniqueResult();离线查询
它是和在线对应的。Criteria对象是一个在线对象,它是由一个可用的(活动的)Session对象获取的出来的。当Session失效后就无法获取该对象,有一个对象,它也可以用于设置条件,但是获取的时候并不需要Session对象。
DetachedCriteria dCriteria = DetachedCriteria.forClass(Customer.class);//设置查询条件与Criteria一样。//添加条件dCriteria.add(Restriction.eq(“cid”,1));Customer customer=(Customer)c.uniqueResult();
(6)、原生的SQL查询
查询结果使用数组封装
//1、书写SQLString sql="select * from customer";//2、封装SQLQuery对象SQLQuery query=session.createSQLQuery(sql);//3、执行查询List<Object[]> list=query.list();
查询结果使用指定对象封装
//1、书写SQLString sql="select * from customer";//2、封装SQLQuery查询对象SQLQuery query=session.createSQLQuery(sql);//3、指定将结果封装到Customer对象中query.addEntity(Customer.class);//4、执行查询List<Customer> list=query.list();
阅读全文
0 0
- 在hibernate中,对数据库的增删改操作以及HQL查询与QBC查询的语句的编写语法
- Hibernate的QBC与HQL分页查询
- Hibernate 的HQL以及QBC 查询语言小结
- Hibernate里的HQL、QBC、SQL查询
- Hibernate 的HQL,QBC 查询语言
- Hibernate 的HQL,QBC 查询语言
- Hibernate的HQL、QBC、QBE查询总结
- hibernate 的sql语句以及hql语句增删改查
- Hibernate增删改查的HQL语句
- Hibernate的QBC查询
- Hibernate的QBC查询
- hibernate的hql查询语句
- Hibernate:HQL/QBC查询语言比较的用法(1)
- Hibernate:HQL/QBC查询语言比较的用法(2)
- Hibernate:HQL/QBC查询语言比较的用法(1)
- Hibernate:HQL/QBC查询语言比较的用法(2)
- Hibernate:HQL/QBC查询语言比较的用法
- hibernate高级查询技术之“HQL和QBC”的区别
- web.xml 各种配置整理
- 禁止网页滚动 (包括安卓浏览器禁止下拉隐藏搜索框)
- 二叉树的基本操作
- mysql 索引
- java/javaWeb高频面试笔试题,全面!
- 在hibernate中,对数据库的增删改操作以及HQL查询与QBC查询的语句的编写语法
- 原生 JS怎么 实现最简单的图片懒加载
- 函数默认参数
- 【提高组NOIP2008】双栈排序 (twostack.pas/c/cpp)
- js大文件分段上传并获取文件md5
- mac下安装mongodb扩展用到的小坑以及正确安装
- Androidimageslider只显示圆点使用
- unittest 单元测试框架 web测试
- Linux自动备份mysql脚本