千家信息网

初识Hibernate框架

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,引、之前在学校接触了Java的hibernate框架,觉得很强大。放假了,有时间好好看一看hibernate的相关技术。最近在imooc上看了相关的视频,写一篇博客总结一下。一、了解:Hibernat
千家信息网最后更新 2026年11月03日初识Hibernate框架

引、

之前在学校接触了Java的hibernate框架,觉得很强大。放假了,有时间好好看一看hibernate的相关技术。最近在imooc上看了相关的视频,写一篇博客总结一下。



一、了解:

Hibernate是一个ORM(Object Relational Mapping,对象关系映射)框架,对JDBC进行了轻量级的封装。使得程序员可以用面向对象的方法来进行数据库编程,使我们更容易用Java对数据库进行各种操作,完成数据持久化(我觉得就是实时同步)的任务。



二、配置:

知道了Hibernate是什么,有什么用之后,我们来着手尝试一下。但是首先,要配置。


我用的是Eclipse,在Java web工程下:

1、jar包

将hibernate所需的jar包都拷贝到WEB-INF\lib目录下,然后build path添加到配置文件中。所需的包可以在其官网下载,然后还要添加所要用jdbc的jar包。


2、hibernate.cfg.xml配置

在src目录下创建hibernate.cfg.xml,也就是config文件。

贴一段配置代码示例:

                            true          org.hibernate.dialect.MySQLDialect          com.mysql.jdbc.Driver          jdbc:mysql://localhost:3306/lesson?useUnicode=true&characterEncoding=utf8          root          root          update                    

关于以上参数,从上往下:

控制台打印sql语句,使用mysql方言,使用mysql数据库,数据库连接,用户名root,密码root,操作表的方式

里是两个实体类,对应数据库中的两张表。(实体类直接对应数据库中的表)


3、TUser.hbm.xml

TUser是其中一个实体类的名字,这里对应了数据库里的user表。对每一个实体类需要创建一个xml配置文件。配置代码示例:

                                                                                                         

其中对应关系:package-包名。class-类名,table-数据库表名。id-主键,name-类中属性名,column-数据库表列名。identity-主键increment自增。property-属性对应。


配置的属性还有单表映射,一对多,多对一的表映射,如果进行过了双向配置,可以使用inverse关键字来实现控制。添加表的映射之后使得数据表之间关系更易于管理,就是数据库中添加外键一样,还可以用cascade等参数使其更加方便。


4、添加工具类HibernateUtil.java

在util包下新建HibernateUtil类。不多说,上代码:

package com.ouc.util;import org.hibernate.SessionFactory;import org.hibernate.cfg.Configuration;import org.hibernate.service.ServiceRegistry;import org.hibernate.service.ServiceRegistryBuilder;public class HibernateUtil {        public static SessionFactory sessionFactory;        public HibernateUtil()         {                        }        static {                try {                        /** 此方法在Hibernate4中被标记为过时 */                        // sessionFactory = new                        // Configuration().configure().buildSessionFactory();                        /** Hibernate4取得SessionFactory的方法 */                        Configuration cfg = new Configuration().configure();  //创建配置对象                        ServiceRegistry serviceRegistry = new ServiceRegistryBuilder()                                          .applySettings(cfg.getProperties()).buildServiceRegistry(); //创建服务注册对象                        sessionFactory = cfg.buildSessionFactory(serviceRegistry);  //创建会话工厂                } catch (Throwable e) {                        throw new ExceptionInInitializerError(e);                }        }                public static SessionFactory getSessionFactory() {                return sessionFactory;        }        }

我们通过sessionFactory就拿到session,然后可以进行各种操作了。


三、使用:

Hibernate中使用HQL(Hibernate Query Language)进行查询,数据库中使用的SQL(Structured Query Language,结构化查询语言)进行查询,两者的语法几乎是一样的。


写个Test测试一下,代码:

package com.ouc.util;import java.util.List;import org.hibernate.Query;import org.hibernate.Session;import com.ouc.domains.TUser;public class TestUtil {        public static void main(String[] args) {                Session session = HibernateUtil.sessionFactory.openSession();                String hql=" from TUser";                Query query= session.createQuery(hql);                List users=query.list();                for(TUser u:users){                        System.out.println(u.getId()+","+u.getUsername()+","+u.getPassword());                }        }}

上面要注意一个问题,debug了半天- - 太粗心了,用了hibernate就是面向对象编程了,所以在查找表的时候不是from tableName,而是要写from className。

比如上面的hql用的from TUser,一开始写了from t_user就报错,提示没有映射。发现配置文件并没有问题,才想到这里写错了。


看看结果,数据库中的数据:

控制台输出结果:

可以,很正确。


五、总结

经过这一小段时间的视频学习,虽然学得不多也不深入,不过这样也算是初步认识了Hibernate框架,还要不断学习!技术的世界很广阔,为了去看看那些技术的秘密,也为了更好的明天,还要不断学习。加油吧,晚安少年。


数据 数据库 配置 对象 实体 文件 框架 代码 就是 属性 技术 学习 控制 查询 不断 参数 控制台 方法 时间 目录 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 云信互联网科技有限公司 科技互联网龙头 互联网科技有限公司图片 金融科技 互联网金融 智网互联网科技 伴你行互联网科技有限公司 四川狮子座互联网科技 银川新华互联网科技职业技术培训学校图片 坤平互联网科技 工业互联网等科技实现智能化赋能 保险科技服务互联网营销体系 广州百诚互联网科技有限公司官网 互联网科技年终奖 广州互联网高科技取餐柜 郑州欣桑互联网科技有限公司 世界互联网科技成果奖 互联网金融运营模式中的金融科技 三亚科技创新互联网基地 杭州科技互联网公司有哪些 互联网大会出现的黑科技 A股互联网金融科技公司 狮子座互联网科技培训 卫星互联网科技股票 青岛中康互联网医疗科技有限公司 成都互联网科技公司100强 互联网时代科技改变生活 互联网科技公司有风险吗 亳州好赞互联网科技有限公司 南通创西澳互联网科技有限公司 萌小萌互联网科技河南有限公司
0