初次学习Hibernate
解决的问题:
1.什么是Hibernate。
2.使用Hibernate的步骤。
一.Hibernate是用于解决java应用与关系数据库连接的。他是一种优秀的持久化框架,是对象(object)----关系(Relational )映射(mapping)[简称ORM 映射技术]的一种实现架构。
内存----------------持久化---------------------磁盘
内存处的数据处于瞬时状态;
磁盘出的数据处于持久状态;
持久化过程:两种状态下数据转换的解决方案。
体悟:
1.以前,你做java程序把JDBC 连接操作数据库,业务逻辑处理,数据存取逻辑混杂在一起有没/
A.没有.你要先做一遍这种类型的java程序。
一般步骤:1.建立数据库连接,获得Connection对象;
2.根据用户的输入查询SQL语句;
3.根据SQL语句建立Statement对象或者PreparedStatement对象;
4.用Connection对象执行查询语句,获得结果集ResultSet对象;
5.一条一条读取结果集ResultSet对象中的数据;
6.根据读取倒的数据,按照特定的业务逻辑进行计算;
7.根据计算的结果再组装更新SQL语句;
8.使用Connection对象执行更新的SQL语句,以更新数据库数据;
9.依次关闭各个Statement对象和Connection对象。
B.有,那可以进行到第二个问题上啦。
二.使用Hibernate的"三个准备,七个步骤"。
三个准备:1.导入Hibernate库。建立一个java应用项目后,单击右键项目(项目,Myeclipse,add Hibernate Capabilities),添加Hibernate配置。
2.添加配置文件Hibernate.cfg.xml。
<session-factory>
<property name="connection.url">
jdbc:microsoft:sqlserver://localhost:1433;Database=zf //数据库连接时URL字符串
</property>
<property name="connection.username">
<property name="connection.url">
jdbc:microsoft:sqlserver://localhost:1433;Database=zf //数据库连接时URL字符串
</property>
<property name="connection.username">
sa</property> //数据库的用户名
<property name="connection.password">
pwd</property> //数据库的用户密码
<property name="connection.driver_class">
com.microsoft.jdbc.sqlserver.SQLServerDriver //数据库的驱动程序
</property>
<property name="dialect">
org.hibernate.dialect.SQLServerDialect //数据库的指定数据库使用的SQL语句
</property>
<property name="show_sql">true</property> //程序运行时,会在控制台输出程序运行的相应的SQL语句<mapping resource="com/hzvtc/entity/User.hbm.xml" /> //Custormer的映像文件
</session-factory>
3.添加实体类和映射文件(例如.Hibernate.hbm.xml).
<property name="connection.driver_class">
com.microsoft.jdbc.sqlserver.SQLServerDriver //数据库的驱动程序
</property>
<property name="dialect">
org.hibernate.dialect.SQLServerDialect //数据库的指定数据库使用的SQL语句
</property>
<property name="show_sql">true</property> //程序运行时,会在控制台输出程序运行的相应的SQL语句<mapping resource="com/hzvtc/entity/User.hbm.xml" /> //Custormer的映像文件
</session-factory>
3.添加实体类和映射文件(例如.Hibernate.hbm.xml).
映像文件 例如
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
<hibernate-mapping>
<class name="com.hzvtc.entity.User" //实体类User
table="user" schema="dbo"
catalog="wu">
<id name="id" type="java.lang.Integer">
<column name="id"/> //数据库的表字段id
<gernerator class="native"></id> //字段id的主键约束
<property name="name" type="java.lang.String">
<column name="name" not-null="true" unique="true"/> //数据库的表字段name
</property>
<property name="pass" type="java.lang.String">
<column name="pass" not-null="true" unique="true"/> //数据库的表字段pass
</property>
</class>
</hibernate-mapping>
注意:<id>和<property>两标签分别用来映射数据库表中的主键字段和非主键字段。
七个步骤:1.Configuration 读取配置文件。Configuration conf =new Configuration().congure();
七个步骤:1.Configuration 读取配置文件。Configuration conf =new Configuration().congure();
2.SessionFactory 创建SessionFactory对象。SessionFactory sf =conf.buildSessionFactory();
3.打开Session。Session session=sf.openSession();
4.开启一个事务。Transaction tx =session.beginTransaction();
5.持久化操作。User user = new User();
user.setName("as");
user.setPass("as");
session.save(user); //相当于insert语句
session.save(user); //相当于insert语句
6.提交事务。tx.commit();
7.关闭session.session.close();
注意: 1.Configuration接口主要用于配置并启动Hibernate,最后创建SessionFactory对象。
2.SessionFactory接口主要用于创建Session对象。
3.Session接口是应用程序和Hibernate进行交互时使用的主要接口,用于增[save()],删[delete()],查[find()],改[update()]。
4.Transaction 接口用于管理事务,它对事务做了封装。