对hibernate的理解

        学习了很久的Hibernate,云里雾里的,心中理解的也不是很清晰,当使用次数多了,对原理的理解加深之后,或许就收获一种柳暗花明的感觉。闲话少谈,我首先来阐述一下我对hibernate的理解,加深我的记忆.

        hibernate能简化我们对数据库的操作,然而却需要我们降低应用程序的效率为代价。在数据库中,我们操作的是表及表中的字段,表之间的联系是通过约束来实现(如外键)。现在我们以面向对象的思想来分析,在java的Model层(很多人都是这么说,即对应MVC分层思想的M)的java类对应一个数据库的表,实体类Class的属性就相当于数据库表的字段(一直对java成员变量和属性存在疑惑,分析得出:“属性=成员变量+方法” ,即就是设置成员变量为private类型,用Setter/Getter方法封装这些变量),表中的一条记录就相当于hibernate操作的一个对象。不使用hibernate时,我们是直接写sql语句对表进行操作,使用该框架,我们不直接去操作表,而是操作的对象(实体类实例化出来的对象)。

      其实,使用hibernate无非就是直接对对象进行增删改查,以达到对数据流表进行增删改查。为了在hibernate中体现表中的约束,需要我们在框架中配置两个xml文件;一个是对应于数据库的xml文件,默认的是hibernate.cfg.xml(当然该文件名是可以用户自定义的,不过一般不去修改);另一个是对应数据库中的表的xml文件,即就是实体类对应的BeanName.hbm.xml,前者管理数据库连接所需要的参数,如Driver、url、username、password,还包括一个方言dialect(因为hibernate可以针对不同的数据库,所以需要方言来判断连接的为何种数据库),而BeanName.hbm.xml则是配置表的各种约束,所以出现many-to-one、one-to-many 、 many-to-many的映射。

     在hibernate中不用直接写sql语句,因为我们操作的述对象,不直接操作数据库表,这样可以避免有些复杂业务的sql语句,对数据库的增删改查可以直接去对实例化的对象进行save、delete、update、query(或者get),这样对对象操作的语句叫做HQL。

   目前想到这些,就写到这里吧!如理解有误,欢迎指正

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值