4.Hibernate框架的概述
1. Hibernate框架的概述 * Hibernate称为 * Hibernate是一个开放源代码的对象关系映射(ORM)框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 * Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用。 * Hibernate是轻量级JavaEE应用的持久层解决方案,是一个关系数据库ORM框架 记住:Hibernate是一个持久层的ORM框架!!!什么是ORM(对象关系映射)
1. ORM映射:Object Relational Mapping * O:面向对象领域的Object(JavaBean对象) * R:关系数据库领域的Relational(表的结构) * M:映射Mapping(XML的配置文件) 2. 简单一句话:Hibernate使程序员通过操作对象的方式来操作数据库表记录 5、Hibernate搭建环境 去hibernate官网下载开发包 搭建步骤: 前期准备: 数据库表结构 实体类对象 第一步:导入jar包。 必须jar包一共有13个 hibernate开发包中有9个 日志组件有3个 mysql数据库驱动1个 第二步:建立对应关系 实体类和数据库表的对应关系。 创建映射文件: 在实体类所在的包下创建一个名称为实体类名称.hbm.xml文件 第三步:创建Hibernate主配置文件 在类的根路径下创建一个名称为hibernate.cfg.xmlHibernate配置文件之映射配置文件
1. 映射文件,即Stu.hbm.xml的配置文件 * <class>标签 -- 用来将类与数据库表建立映射关系 * name -- 类的全路径 * table -- 表名.(类名与表名一致,那么table属性也可以省略) * catalog -- 数据库的名称,基本上都会省略不写 * <id>标签 -- 用来将类中的属性与表中的主键建立映射,id标签就是用来配置主键的。 * name -- 类中属性名 * column -- 表中的字段名.(如果类中的属性名与表中的字段名一致,那么column可以省略.) * length -- 字段的程度,如果数据库已经创建好了,那么length可以不写。如果没有创建好,生成表结构时,length最好指定。 * <property> -- 用来将类中的普通属性与表中的字段建立映射. * name -- 类中属性名 * column -- 表中的字段名.(如果类中的属性名与表中的字段名一致,那么column可以省略.) * length -- 数据长度 * type -- 数据类型(一般都不需要编写,如果写需要按着规则来编写) * Hibernate的数据类型 type="string" * Java的数据类型 type="java.lang.String" * 数据库字段的数据类型 <column name="name" sql-type="varchar"/>Hibernate配置文件之核心配置文件
1. 核心配置文件的两种方式(了解) * 第一种方式是属性文件的形式,即properties的配置文件 * hibernate.properties * hibernate.connection.driver_class=com.mysql.jdbc.Driver * 缺点 * 不能加载映射的配置文件,需要手动编写代码去加载 * 第二种方式是XML文件的形式,开发基本都会选择这种方式 * hibernate.cfg.xml * <property name="hibernate.connection.driver_class" >com.mysql.jdbc.Driver</property> * 优点 * 格式比较清晰 * 编写有提示 * 可以在该配置文件中加载映射的配置文件(最主要的) 2. 关于hibernate.cfg.xml的配置文件方式 * 必须有的配置 * 数据库连接信息: hibernate.connection.driver_class -- 连接数据库驱动程序 hibernate.connection.url -- 连接数据库URL hibernate.connection.username -- 数据库用户名 hibernate.connection.password -- 数据库密码 * 方言: hibernate.dialect -- 操作数据库方言 * 可选的配置 * hibernate.show_sql -- 显示SQL * hibernate.format_sql -- 格式化SQL * hibernate.hbm2ddl.auto -- 通过映射转成DDL语句 * create -- 每次都会创建一个新的表.---测试的时候 * create-drop -- 每次都会创建一个新的表,当执行结束之后,将创建的这个表删除.---测试的时候 * update -- 如果有表,使用原来的表.没有表,创建一个新的表.同时更新表结构. * validate -- 如果有表,使用原来的表.同时校验映射文件与表中字段是否一致如果不一致就会报错. * 加载映射 * 如果XML方式:<mapping resource="cn/itcast/hibernate/domain/User.hbm.xml" /> 7、常用对象介绍 Configuration SessionFactory Session Transaction 8、满足SessionFactory使用原则——抽取HibernateUtil 9、生成Hibernate的编码模板 10、使用Hibernate实现增删改查(查一个) 作业: 实现客户的增删改查 实现联系人的增删改查