好贷网好贷款

Hibernate学习(一)--Hibernate知识要点1

发布时间:2016-12-5 2:21:29 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"Hibernate学习(一)--Hibernate知识要点1",主要涉及到Hibernate学习(一)--Hibernate知识要点1方面的内容,对于Hibernate学习(一)--Hibernate知识要点1感兴趣的同学可以参考一下。

Hibernate知识要点   新建项目 2 学习建立user-library-hibernate,并加入相应的jar包   a项目右键-build path-configure build path-add library   b选择user-library,在其中新建library,命命为hibernate   c 在该library中加入hibernate所需要的jar包              hibernate3.3.2 /hibernate3.jar /lib/required目录下的所有包 6个 Sl4j-nop jar 3 引入mysql的JDBC驱动包 4 在MYSQL中建数据库和相应的表student(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 library中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.xml Configuration cfg=new AnnotationConfiguration().configure();(有注解时使用AnnotationConfiguration),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 teacher(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-annotations.jar 注意:annotation文档中并没有提到hibernate-annotations.jar包 4 参考annotation文档建立对应的注解 5 在hibernate.cfg.xml中建立映射  <mapping class=”com.xx.xx”/> 6 示例 //AnnotationConfiguration;              Configuration cfg=new AnnotationConfiguration();              SessionFactory sf=cfg.configure().buildSessionFactory();              Session session=sf.openSession();              session.beginTransaction();              session.save(t);//              session.getTransaction().commit();              session.close();              sf.close();     对象映射(采用配置文件方式) 1 在相应的类中建立对应的配置文件. 例如Student类对应的配置文件Student.hbm.xml <hibernate-mapping package="com.model">        <class name="Student" table=" Student" >              <id name="id" column="id"></id>              <property name="name" column="name" />              <property name="age" column="age" />        </class> </hibernate-mapping> 2 在hibernate.cfg.xml中添加该映射文件Student.hbm.xml即可     <!-- 建立对应的配置文件关联相应的数据库表 -->     <mapping resource="com/model/Student.hbm.xml"/>注意包名的写法 3 示例 //读取配置文件hibernate.cfg.xml              Configuration cfg=new Configuration().configure(); //创建SessionFactory              SessionFactory sf=cfg.configure().buildSessionFactory(); //创建session              Session 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 在sessionfactory创建时,自动检查数据结构,或者将数据库schema(表)的DDL导出到数据库,使用create-drop时,在显式关闭sessionfactory时,将drop掉数据库schema. validate               加载hibernate时,验证创建数据库表结构  create                  每次加载hibernate,重新创建数据库表结构  create-drop        加载hibernate时创建,退出是删除表结构  update                 加载hibernate自动更新数据库结构     表名和类名不同的情况时,对表名进行配置 1 在注解中 import javax.persistence.Table; @Table(name=”TableName”) 2 在XML文件中 <hibernate-mapping package="com.model">                   <class name="Teacher" table="Teacher" >配置对应的table属性为相应的表名                                    <id name="id" column="id"></id>                   …                   </class> </hibernate-mapping>   字段名和属性名相同,默认为 对于annotation,如果什么注解都不写的话,[email protected] [email protected]久化, [email protected][email protected] [email protected](fetch strategy): 对于XML文件中不用写column.   字段名和属性名不同时 Annotation:@column(name=”column_name”)加上相应的getXXX()方法上 XML:column属性   不需要persistence的字段 import javax.persistence.Transient; @ Transient 意思是说这个属性是透明的,不进行持久化,存储的时候不存进去   映射日期和时间类型,指定时间精度 Annotation: import javax.persistence.Temporal; @Temporal(TemporalType.TIME)   XML:指定type <class name="Teacher" table="Teacher" >                                    <id name="id" column="id"></id>                                    <property name="name" type="time" />type=time或date </class>   枚举类型的转换 @Enumerated(EnumType.STRING)   字段映射的位置 推荐写在gexXXX方法上   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 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 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 CLOB 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 或 Clob 实例中

上一篇:我在ODI10g集成时遇到的各种问题及摸索出来的解决方案
下一篇:Ubuntu amd64 的安装问题

相关文章

相关评论