Hibernate框架 初学

来源:互联网 发布:overlay network 网络 编辑:程序博客网 时间:2024/06/13 09:39

 

 

界面获取数据---封装对象(业务逻辑)--调用dao(数据保存)--SQL(结构化查询语言)

              Strut1/2                                        --Hibernate(将对象直接保存)

 

Hibernate基于JDBC

       Jar,可以官网下载(4.1)完毕,可以直接复制到项目的WEB-INF/lib即可

       可以用于B/S结构或者C/S结构

       hibernate.cfg.xml配置文件,保存用户连接数据库的信息,系统配置信息

       HibernateSessionFactory类可以获取SessionFactory

       SessionFactory生产Session

       Session可以进行get()/save()/update()/delete()

       Session可以返回一个Query对象,然后返回List集合结果

 

MyEclipse Database Explorer工具,可以连接各种类型的数据库

 

IDnative—Id赋值授权数据库管理,根据数据库进行自动选择自增原理

assigned –ID由程序来控制

 

数据持久化:将瞬时状态和持久状态相互转换的一个过程。

 

数据之间的关系:

       1-1:员工和身份信息

       1-N:部门和员工之间

              1.在一方配置(修改实体类--将某一属性修改成对象、

修改对应的hbm.xml--使用many2one标签,将普通的属性改成一个对象)

              2.在多方配置(添加一个Set集合、

修改对应的hbm.xml--使用Set标签配置集合)

       N-N:学生和课程

 

Lazy:true  false

 

Cascadealldeletesave-updatenone

 

主键管理方式:

       由程序进行管理:assigned

       Oracle数据库进行管理:sequence

              使用序列来生成主键时,数据类型需要LongIntegerShortString类型

使用Dept表时,需要修改表中主键number(2)=>number(4);

对应的实体类型,Byte=>Integer

 

 

Longlong)、IntegerintShortshort)之间有什么区别?

 

 

HQL:

       String sql="from Emp";

       String sql="select e from Emp e";        

       String sql="select e.ename,e.job,e.dept from Emp e";        

       String sql="select new Emp(e.ename,e.job,e.dept) from Emp e ";

       String sql="select new Emp(e.ename,e.job,e.sal,e.dept) from Emp e order by e.sal desc";

       String sql="select new Emp(e.ename,e.job,e.sal,e.dept) from Emp e where e.sal>1000";

       String sql="select new Emp(e.ename,e.job,e.sal,e.dept) from Emp e order by e.empno";

String sql="select new Emp(e.ename,e.job,e.sal,e.dept) from Emp e

 where e.ename=:ename and e.sal>:sal";

      

       分页查询:query.setFirstResult((pageNo-1)*pageCount);

             query.setMaxResults(pageCount);

 

    select e from Emp e where e.ename='WARD' or ’1’=’1’

原创粉丝点击