尚学堂hibernate笔记

上传人:飞*** 文档编号:4727192 上传时间:2017-08-23 格式:DOC 页数:30 大小:719.50KB
返回 下载 相关 举报
尚学堂hibernate笔记_第1页
第1页 / 共30页
尚学堂hibernate笔记_第2页
第2页 / 共30页
尚学堂hibernate笔记_第3页
第3页 / 共30页
尚学堂hibernate笔记_第4页
第4页 / 共30页
尚学堂hibernate笔记_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《尚学堂hibernate笔记》由会员分享,可在线阅读,更多相关《尚学堂hibernate笔记(30页珍藏版)》请在金锄头文库上搜索。

1、知识点终结:1 新建项目2 学习建立 user-library-hibernate,并加入相应的 jar 包a 项目右键-build path-configure build path-add libraryb 选择 user-library,在其中新建 library,命命为 hibernatec 在该 library 中加入 hibernate 所需要的 jar 包hibernate3.3.2 /hibernate3.jar/lib/required 目录下的所有包 6 个Sl4j-nop jar3 引入 mysql 的 JDBC 驱动包4 在 MYSQL 中建数据库和相应的表 stude

2、nt(id,name,age)5 建立 hibernate 配置文件 hibernate.cfg.xml参考文档中 COPY,修改对应的数据库连接,6 建立 student 类7 建立映射文件 Student.hbm.xml 参考相应文档8 将映射文件加到 hibernate-cfg.xml 中搭建日志环境并配置显示 DDL 语句slf 的实现:slf4j nodep ,log4j ,jdk logging api ,apache common-log.slf4j.nop.jar 是 slf-api.jar 其相应的接口实现把 slf 的接口对到 log4j 的实现,在 user librar

3、y 中 hibernate,把 slf 的实现 slf4j-nop-1.5.8.jar 去掉,添加 log4j 的实现 log4j-1.2.15.jar,再添加一个 slf-api 和 log4j 转换器 slf4j-log4j12-1.5.8.jar.把 slf 的接口转换成 log4j 的接口.最后添加一个 log4j 的配置文件 log4j.properties利用 HIBERNATE 导出数据库建表/读取配置文件 hibernate.cfg.xmlConfiguration cfg=new AnnotationConfiguration().configure();(有注解时使用 An

4、notationConfiguration),configure()可以手动指定配置文件名称.Configuration cfg=new Configuration(),会默认读取 hibernate.properties 文件/创建 schemaExport 对象import org.hibernate.tool.hbm2ddl.SchemaExport;SchemaExport export=new SchemaExport(cfg);/创建数据库表export.create(true, true);对象映射(采用 Annotation 注解方式)1 建表Create table teac

5、her(id int primary key,name varchar(20),title varchar(20);2 创建 teacher 类,并进行注解import javax.persistence.Entity;import javax.persistence.Id;在 bean 中加注解 Entity,Id(加在 getId()上面)3 在 hibernate 中加入 annotation 相应的 jar 包hibernate-annotations.jar/lib 目录下加入相应的包 ejb3-persistence.jar, hibernate-commons-annotatio

6、ns.jar注意:annotation 文档中并没有提到 hibernate-annotations.jar 包4 参考 annotation 文档建立对应的注解5 在 hibernate.cfg.xml 中建立映射6 示例/AnnotationConfiguration;Configuration cfg=new AnnotationConfiguration();SessionFactory sf=cfg.configure().buildSessionFactory();Session session=sf.openSession();session.beginTransaction()

7、;session.save(t);/session.getTransaction().commit();session.close();sf.close();对象映射(采用配置文件方式 )1 在相应的类中建立对应的配置文件. 例如 Student 类对应的配置文件 Student.hbm.xml2 在 hibernate.cfg.xml 中添加该映射文件 Student.hbm.xml即可注意包名的写法3 示例/读取配置文件hibernate.cfg.xmlConfiguration cfg=new Configuration().configure();/创建SessionFactorySe

8、ssionFactory sf=cfg.configure().buildSessionFactory();/创建sessionSession session=sf.openSession();session.beginTransaction();session.save(s);session.getTransaction().commit();session.close();sf.close();hibernate.cfg.xml 配置hibernate.hbm2ddl.auto 属性取值: validate | update | create | create-drop在 sessionf

9、actory 创建时,自动检查数据结构,或者将数据库 schema(表)的 DDL 导出到数据库,使用create-drop 时,在显式关闭 sessionfactory 时,将 drop 掉数据库 schema.validate 加载 hibernate 时,验证创建数据库表结构 create 每次加载 hibernate,重新创建数据库表结构 create-drop 加载 hibernate 时创建,退出是删除表结构 update 加载 hibernate 自动更新数据库结构表名和类名不同的情况时,对表名进行配置1 在注解中import javax.persistence.Table;Ta

10、ble(name=”TableName”)2 在 XML 文件中 配置对应的 table 属性为相应的表名字段名和属性名相同,默认为对于 annotation,如果什么注解都不写的话,相当于加了注解Basic实体 bean 中所有的非 static 非 transient 的属性都可以被持久化 , 除非你将其注解为Transient.所有没有定义注解的属性等价于在其上面添加了Basic 注解. 通过 Basic 注解可以声明属性的获取策略(fetch strategy):对于 XML 文件中不用写 column.字段名和属性名不同时Annotation:column(name=”column_

11、name”)加上相应的 getXXX()方法上XML:column 属性不需要 persistence 的字段import javax.persistence.Transient; Transient 意思是说这个属性是透明的 ,不进行持久化,存储的时候不存进去映射日期和时间类型,指定时间精度Annotation: import javax.persistence.Temporal;Temporal(TemporalType.TIME)XML:指定 typetype=time 或 date枚举类型的转换Enumerated(EnumType.STRING)字段映射的位置推荐写在 gexXXX

12、方法上Hibernate 映射类型Hibernate 映射类型 Java 类型 标准 SQL 类型 大小和取值范围 integer 或者 int int 或者 java.lang.Integer INTEGER 4 字节 long long Long BIGINT 8 字节 short short Short SMALLINT 2 字节 byte byte Byte TINYINT 1 字节 float float Float FLOAT 4 字节 double double Double DOUBLE 8 字节 big_decimal java.math.BigDecimal NUMERIC

13、 NUMERIC(8,2)8 位 character char Character String CHAR(1) 定长字符 string String VARCHAR 变长字符串 boolean boolean Boolean BIT 布尔类型 yes_no boolean Boolean CHAR(1) (Y-N) 布尔类型 true_false boolean Boolean CHAR(1) (T-F) 布尔类型 2 、 Java 时间和日期类型的 Hibernate 映射 映射类型 Java 类型 标准 SQL 类型 描述 date util.Date 或者 sql.Date DATE

14、YYYY-MM-DD time Date Time TIME HH:MM:SS timestamp Date Timestamp TIMESTAMP YYYYMMDDHHMMSS calendar calendar TIMESTAMP YYYYMMDDHHMMSS calendar_date calendar DATE YYYY-MM-DD 3 、 Java 大对象类型的 Hibernate 映射类型 映射类型 Java 类型 标准 SQL 类型 MySQL 类型 Oracle 类型 binary byte VARBINARY( 或 BLOB) BLOB BLOB text String CL

15、OB TEXT CLOB serializable Serializable 接口任意实现类 VARBINARY( 或 BLOB) BLOB BLOB clob java.sql.Clob CLOB TEXT CLOB blob java.sql.Blob BLOB BLOB BLOB 在程序中通过 Hibernate 来保存 java.sql.Clob 或者 java.sql.Blob 实例时,必须包含两个步骤: 1 在一个数据库事务中先保存一个空的 Blob 或 Clob 实例。 2 接着锁定这条记录,更新上面保存的 Blob 或 Clob 实例,把二进制数据或文本数据写到 Blob 或

16、Clob 实例中 Hibernate SQL 方言 (hibernate.dialect) RDBMS 方言 DB2 org.hibernate.dialect.DB2DialectDB2 AS/400 org.hibernate.dialect.DB2400DialectDB2 OS390 org.hibernate.dialect.DB2390DialectRDBMS 方言 PostgreSQL org.hibernate.dialect.PostgreSQLDialectMySQL org.hibernate.dialect.MySQLDialectMySQL with InnoDB org.hibernate.dialect.MySQLInnoDBDialectMySQL with MyISAM org.hibern

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号