hibernate入门教程2增删查改

本文详细介绍了使用Hibernate进行数据库操作的基本步骤,包括简单的插入、查询、更新和删除操作,以及如何通过本地SQL语句自定义操作。通过实例演示了如何在面向对象编程中灵活运用Hibernate,提供了一种高效且灵活的数据库交互方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、hibernate简单插入
1)按照标准的官方标准

Configuration cfg = new Configuration().configure();
                //获取会话工厂(一个数据库只能有一个会话工厂)
                SessionFactory sf = cfg.buildSessionFactory();
                //会话
                Session session = sf.openSession();
                //事务
                Transaction tx = session.beginTransaction();
                //设置user类的值
                User user = new User();
//              user.setUserId(7);
//              user.setUserName("czy2");
//              user.setPass("213");
//              //保存更改
//              session.save(user);
                //关闭事务
                tx.commit();

2)非标准的插入
如果有经常使用数据库的伙伴就知道插入根据业务要求,也是非常的多样化,官方的标准不一定可以满足我们的要求,我们也可以按照自己的要求去写自己insert语句

使用本地sql语句

Configuration cfg = new Configuration().configure();
                //获取会话工厂(一个数据库只能有一个会话工厂)
                SessionFactory sf = cfg.buildSessionFactory();
                //会话
                Session session = sf.openSession();
                //事务
                Transaction tx = session.beginTransaction();

//使用本地sql
String sql="insert into user_list(userName)values(?)";
SQLQuery sqlquery=session.createSQLQuery(sql);
sqlquery.setParameter(0, "sun");
sqlquery.executeUpdate();


//关闭事务
                tx.commit();

二、hibernate简单查询
0)首先hibernate环境必须搭好,可以看我前面的教程
概述:
Query(查询)接口允许你在数据库上执行查询并控制查询如何执行。查询语句使用HQL或者本地数据库的SQL方言编写。

调用代码:

User是一个类
Query query = session.createQuery(“from User”); 

1)绑定参数查询
以下userName为参数名称
查询用户名为“seehope”的用户:
例子1:使用?号传参


Query query = session.createQuery(“from User user where user.name = ?");
query.setParameter(0,user.getName());

2)使用变量名传参

从User类里面查找user.name的属性
Query query = session.createQuery("from User where user.name = :userName");
//设置参数
query.setParameter(“userName ",user.getName());
//打印出来看下
System.out.println(list.get(0).getUserId());

3)代码举例

    String hql="from User";
//              String hql="from User where userId=?";
                String hql="from User where userName=:userName";
                Query query=session.createQuery(hql);
                //第二个参数传的是userId的值
//              query.setParameter(0, 7L);
                query.setParameter("userName", "czy2");
                //查询的数据是放在集合的
                List<User> list=query.list();
                            System.out.println(list.get(0).getUserId());

4)非标准的查询语句

三、update

//非标准的hql语句,更新
                hql="update User set pass=? where userName=?";
                query=session.createQuery(hql);
                query.setParameter(0, "121");
                query.setParameter(1, "sun");

四、delete


                //非标准的hql语句,删除
                hql="delete User where userName=?";
                query=session.createQuery(hql);
                query.setParameter(0, "czy2");
//              query.executeUpdate();

五、使用本地sql语句

                //使用本地sql,在这里可以写自己的sql语句
                String sql="insert into user_list(userName)values(?)";
                SQLQuery sqlquery=session.createSQLQuery(sql);
                sqlquery.setParameter(0, "sun");
                sqlquery.executeUpdate();

总结:我们从上面几个例子可以看出来,hibernate自己封装了很多对数据库的操作,可以极大的方便我们的编程,做到真正的面向对象,同时我们又可以写我们自己sql语句,非常的方便。在后面的学习还会有更加厉害的用法!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值