Hibernate框架第一天

本文介绍了Hibernate框架的基础知识,包括框架的概述和重点讲解了技术分析中的常用配置文件,如映射配置文件和核心配置文件,为初学者提供入门指导。
摘要由CSDN通过智能技术生成

1、框架的概念
    它是我们应用中局部或者整个的可重用设计,是我们应用的骨架。
    它封装了很多的细节,使我们开发起来变得简单,从而提高我们的开发效率。
2、三层架构
    web层        表现层
       作用:
        封装请求参数
        给用户展示数据
    service层    业务层
       作用:
        处理业务逻辑,实现需求
    dao层        持久层
       作用:
        和数据库交互。
3、持久层实现保存和查询一个学生,你会的方式?
JDBC:很痛苦
保存一个学生
    Connection conn = getConnection();
    String sql = "insert into student(name,gender,birthday) values(?,?,?)";
    PreparedStatement pstm = conn.prepareStatement(sql);
    //给占位符赋值
    int res = pstm.executeUpdatea();
查询学生信息
    Connection conn = getConnection();
    String sql = "select * from student where name like ? ";
    PreparedStatement pstm = conn.prepareStatement(sql);
    //给占位符赋值
    ResultSet rs = pstm.executeQuery();
    List<Student> list = new ArrayList<Student>();
    while(rs.next()){
        String name = rs.getString("name");
        String gender = rs.getString("gender");
        Date birthday = rs.getDate("birthday");
        Student s = new Student();
        s.setName(name);
        s.setGender(gender);
        s.setBirthday(birthday);
        list.add(s);
    }
DBUtils:很麻烦
保存一个学生:
    QueryRunner qr = new QueryRunner(DataSource);
    String sql = "insert into student(name,gender,birthday) values(?,?,?)";
    qr.update(sql,s.getName(),s.getGender(),s.getBirthday());
查询学生信息:
    QueryRunner qr = new QueryRunner(DataSource);
    String sql = "select * from student where name like ? ";
    qr.query(sql,new BeanListHandler<Student>(Student.class),name);
create table student(
    name varchar(100),
    gender varchar(10),
    birthday date
    ........
);
public class Student{
    private String name;
    private String gender;
    private Date birthday;
    ....
    //get and set
}
你想怎么办?
    想一行搞定
    session.save(student);=========>保存了学生到数据库    转换成sql语句
    session.get(id);===============>查询到了一个学生        转换成sql语句
    想操作实体类就相当于操作数据库表。
要想实现上面的想法:
    建立数据库表和实体类之间的关系
用什么建立:
    用配置文件建立关系
用哪个配置文件:
    properties
        配置方式是键值对
    xml:我们选这个作为实体类和数据表建立关系的配置文件
        配置方式是层级关系
配置文件的内容:
    实体类名称和数据库表名称的对应关系。
    实体类中属性和数据库表字段的对应关系。
举例save方法:
    Hibernate做了:
        它就会解析XML,根据实体类对象生成SQL语句 
        insert into student(name,gender,birthday) values(?,?,?)

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.xml

6.技术分析之:Hibernate常用的配置文件


Hibernate配置文件之映射配置文件

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实现增删改查(查一个)
作业:
    实现客户的增删改查
    实现联系人的增删改查
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值