Hibernate入门笔记_01_hibernate配置
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任
Hiberante 很重要的一个思想是ORM ——(Object Relation Mapping) .顾名思义
那么HIbernate是怎么实现对数据库建立映射的呢?
XML : 通过配置Xml 文件来实现对数据库表建立映射。
一、 建立映射配置文件(文件名称跟位置不限):
引入约束: (DTD or Schema) 这里引入DTD 约束, 约束链接: http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd
<hibernate-mapping> <!--1 配置类和表对应 class 标签 name 属性 实体类全路径 table 属性 数据库表名称 --> <class name="com.daxiong.entity.User" table="t_user"> <!-- 2 配置实体类的id 跟表的id 对应 hibernate 要求实体类有一个属性唯一值 hibernate 要求表有字段作为唯一值 --> <!-- id 标签 name 属性实体类里面id 属性名称 column 生成表字段名称 --> <id name="id" column="id"> <!-- 生成的增长策略 native :生成表自动增长 --> <generator class="native"></generator> </id> <!-- 配置其他属性和表字段对应 --> <property name="username" column="username"></property> <property name="password" column="password"></property> </class> </hibernate-mapping>
二 、 建立核心配置文件(位置名称限制(在src 文件下,名称为hibernate.cfg.xml)):
引入约束链接:http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd
<hibernate-configuration> <session-factory> <!-- 配置数据库信息 --> <property name="hibernate.connection.driver_class"></property> <property name="hibernate.connection.url"></property> <property name="hibernate.connection.username"></property> <property name="hibernate.connection.password"></property> <!-- hibernate配置 (非必须)--> <!-- 输出底层的sql语句 --> <property name="hibernate.show_sql">true</property> <!-- 对sql语句进行格式化 --> <property name="hibernate.format_sql">true</property> <!-- hibernate配置后自动创建表 如果已经有表更新 没有创建 --> <property name="hibernate.hbm2ddl.auto">update</property> <!-- 配置数据库方言 在 mysql 里实现分页关键字limit 只能在MySQL中使用 在Oracle中 实现分页rownum 在hibernate 中识别不同数据的特有语言 --> <property name="hibernate.dialec">org.hibernate.dialect.MckoiDialect</property> <!-- 引入映射文件 --> <mapping resource="com/daxiong/entity/Userhtb.xml" /> </session-factory> </hibernate-configuration>
注意引入映射文件的路径。
四、在hibernate 向数据库写入数据的时候会发生乱码的情况下作如下处理:
jdbc:mysql:///hibernate?useUnicode=true&characterEncoding=utf-8