Hibernate入门与环境搭建



主要内容
1、引入
2、安装配置
3、基本概念和CURD
4、HQL和criteria
5、关联映射
6、继承映射


一、引入
1、模型不匹配(阻抗不匹配)
java面向对象语言,对象模型,其主要概念有:继承、关联、多台等;
数据库是关系模型,其主要概念有:表、主键、外键等。
2、解决方法
1、使用JDBC手工转换
关系模型转换成了对象模型  JDBC读取操作
  对象模型转换成关系模型    JDBC提交执行
2、使用ORM(Object Relation Mapping)框架来解决、
主流的orm框架有Hibernate(JBOSS)、TopLink、OJB(appche)


二、安装配置
1、下载地址 http://www.hibernate.org
2、导入配置文件
sql驱动、hibernate3.jar、lib文件夹下的jpa和required文件夹下的所有内容。
3、配置文件hibernate.cfg.xml和hibernate.properties,XML和properties两种,这两个文件的作用一样,提供一个即可,推荐XML格式,下载目录/etc下是示例配 置文件。
可以在配置文件指定:
数据库的URL、用户名、密码、JDBC驱动类、方言等。
启动时Hibernate会在CLASSPATH里找这个配置文件。
4、映射文件(hbm.xml,对象模型和关系模型的映射)。在/eg目录下有完整的hibernate示例。 


<class name="java中的实体类的类名" table="表名">
<!--java类中属性映射成表的字段-->
<id name="java类中作为主键的那个属性的名字" column="表中列明">
<generator class="native" />  //生成器
</id>


</class> 将一个java类映射成表


5、hibernate.cfg.xml文件
驱动、URL\帐号、密码
6、配置文件


(1)搭建环境:
将hibernate所用的jar包构建项目中
Mysql驱动
hibernate3.jar
lib/required/所有jar文件
lib/jpa/jar文件
(2)配置文件
hibernate.cfg.xml
hibernate.properties
驱动、url、用户名、密码、方言、自动创建表格、将hibernate工作过程中产生的sql语句输出
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql:///demo</property>
<property name="connection.username">root</property>
<property name="connection.password">123456</property>
<!--方言,告诉hibernate是哪一种数据库  -->
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- 根据映射文件去生成ddl语言。自动创建表格等 create 新建表格,运行完删除 -->
<property name="hibernate.hbm2ddl.auto">create</property>
<!--能将hibernate生成的语句显示出来 -->
<property name="hibernate.show_sql">true</property>
<!--告诉hibernate的映射文件在那里-->
<mapping resource="com/hbsi/domain/User.hbm.xml"/>
</session-factory>
</hibernate-configuration>
(3)映射文件
User----User.hbm.xml


<hibernate-mapping       
package="com.hbsi.domain">    ------指定java实体类的包名


<class name="User" table="user"> --说明实体类怎样映射成表
<id name="id" column="id">    ---主键属性,自动递增 一样测则省略column属性
<generator class="native"/>
</id>  
<property name="name"/>  
<property name="birthday"/>
</class>


</hibernate-mapping>
(4)执行过程:
Configuration cfg=new Configuration();
cfg.configure();//完成hibernate的初始化,--读取配置文件
//SessionFactory对象-----相当于JDBC的DriverManageer
SessionFactory sf=cfg.buildSessionFactory();
//得到Session对象
Session s=sf.openSession();
Transaction tx=s.beginTransaction();
//实例化一个实体
User user=new User();
user.setName("marico");
user.setBirthday(new Date());

//保存到数据库中
s.save(user);
tx.commit();
//关闭资源
s.close();

你可能感兴趣的:(java,数据库,Hibernate,jdbc,user,generator)