博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hibernate 框架学习笔记
阅读量:6956 次
发布时间:2019-06-27

本文共 2581 字,大约阅读时间需要 8 分钟。

hot3.png

一、框架引入

1.创建项目。

2.下载官方jar包。hibernate-distribution-3.5.6-Final

3.导入需要的包。

D:\jar\hibernate\hibernate-distribution-3.5.6-Final\hibernate3.jarD:\jar\hibernate\hibernate-distribution-3.5.6-Final\lib\required\*D:\jar\hibernate\hibernate-distribution-3.5.6-Final\lib\jpa\hibernate-jpa-2.0-api-1.0.0.Final.jar

4.运行项目发现有错。

java.lang.NoClassDefFoundError: org/slf4j/impl/StaticLoggerBinder

导入另一个包

D:\jar\slf4j-nop-1.5.8.jar

注意此时的包必须与 slf4j-api-1.5.8.jar 版本相对应。

二、初步使用

1.many-to-one 多对一关联。

对于外键关联,存在多个外键表实体对应一个主键表实体。在项目中就是一对多关联。例:

①汽车品牌表Brand对应的实体类:

public class Brand {    private int brandId;    private String name;    private int bIndex;    private String memo;    public int getBrandId() {        return brandId;    }    public void setBrandId(int brandId) {        this.brandId = brandId;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public int getbIndex() {        return bIndex;    }    public void setbIndex(int bIndex) {        this.bIndex = bIndex;    }    public String getMemo() {        return memo;    }    public void setMemo(String memo) {        this.memo = memo;    }}

②汽车系列表Series对应的实体类:

public class Series {    private int seriesId;    private String name;    private int sIndex;    private String memo;        private Brand brand;    public int getSeriesId() {        return seriesId;    }    public void setSeriesId(int seriesId) {        this.seriesId = seriesId;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public int getsIndex() {        return sIndex;    }    public void setsIndex(int sIndex) {        this.sIndex = sIndex;    }    public String getMemo() {        return memo;    }    public void setMemo(String memo) {        this.memo = memo;    }    public Brand getBrand() {        return brand;    }    public void setBrand(Brand brand) {        this.brand = brand;    }}

实际关系是一个品牌的汽车包含多个系列,因此存在多个系列从属于一个品牌的情况。故配置Series.hbm.xml如下:

    
        
            
                
        
        
        
        
        
    

注意:以上在Series类中有了brand类就不用添该表中的brand_id,否则就会报错

Column 'Brand_id' specified twice

列Brand_id 实例化两次。

三、延迟加载,连接抓取

3.1多对一

       
    

3.2一对多

3.3获取数据

String hql = "from Category";List
 list = this.getHibernateTemplate().loadAll(Category.class);

总结:在映射文档中定义抓取策略时,只有通过get或load方法才生效。

转载于:https://my.oschina.net/u/2245926/blog/397088

你可能感兴趣的文章
Android 微信第三方登录
查看>>
Java中保留小数点后几位
查看>>
利用 Python_tkinter 完成 2048 游戏
查看>>
洛谷P2756 飞行员配对方案问题
查看>>
vsftpd安装
查看>>
DataSet
查看>>
Python之路【第零篇】:目录篇
查看>>
so加载报错:dlopen failed: couldn't map ... Permission denied
查看>>
LCA(st算法)
查看>>
常去的网站与常用的软件
查看>>
StyleCop 官网
查看>>
UOJ131 [NOI2015] 品酒大会
查看>>
第三章 CLR如何解析引用类型
查看>>
转:Redis监控工具—Redis-stat、RedisLive
查看>>
[LintCode] 通配符查询
查看>>
Excel,2010,可以独立打开窗口
查看>>
BZOJ3238:[AHOI2013]差异——题解
查看>>
DOIS 2019 DevOps国际峰会北京站来袭~
查看>>
数据库_SQL语句
查看>>
LRU算法的精简实现(基于Java)
查看>>