Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了很是轻量级的对象封装,它将POJO与数据库表创建映射关系,是一个全自动的orm框架,hibernate能够自动生成SQL语句,自动执行,使得Java程序员能够为所欲为的使用对象编程思惟来操纵数据库。 Hibernate能够应用在任何使用JDBC的场合,既能够在Java的客户端程序使用,也能够在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate能够在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任mysql
Hiberante 很重要的一个思想是ORM ——(Object Relation Mapping) .顾名思义程序员
那么HIbernate是怎么实现对数据库创建映射的呢? sql
XML : 经过配置Xml 文件来实现对数据库表创建映射。数据库
1、 创建映射配置文件(文件名称跟位置不限): 编程
引入约束: (DTD or Schema) 这里引入DTD 约束, 约束连接: http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtdsession
<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 app
<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>
注意引入映射文件的路径。框架
4、在hibernate 向数据库写入数据的时候会发生乱码的状况下做以下处理: url
jdbc:mysql:///hibernate?useUnicode=true&characterEncoding=utf-8