Hibernate框架第一天

    xiaoxiao2021-03-25  114

    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实现增删改查(查一个) 作业:     实现客户的增删改查     实现联系人的增删改查
    转载请注明原文地址: https://ju.6miu.com/read-14439.html

    最新回复(0)