Hibernate快速起步

准备工作
创建示例数据库
构建Hibernate基础代码
Hibernate配置
测试代码

准备工作
在正式开始Hibernate旅程之前,先准备好所需要的软件和开发环境。
1.Hibernate框架所需要的JAR包
2.MySql的最新版JDBC驱动
3.开发工具[Eclipse3.x]
4.数据库环境[MySql5.x]

创建示例数据库
CREATE DATABASE sample
CREATE TABLE `sample`.`user1` (
  `id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  `name` VARCHAR(45) NOT NULL DEFAULT '',
  PRIMARY KEY(`id`)
)


构建Hibernate基础代码
Hibernate基础代码包括POJO类和Hibernate映射文件。
POJO在Hibernate语义中理解为数据库表所对应的Domain Object。这里的POJO就是所谓的“无格式普通Java对象”,可以简单地理解为一个不包含逻辑代码的值对象(Value Object,简称VO)。从数据层面上来看,POJO作为数据实体的对象代表现形式,也称为实体类。
Hibernate是一种“对象—关系型数据映射组件”,它使用映射文件将对象(Object)与关系数据(Relational)相关联。在Hibernate中,映射文件通常以“.hbm.xml”作为后缀。

User1.java
public class User1 implements java.io.Serializable {
    private Integer id;
    private String name="";
    public User1() {
    }
    public Integer getId() {
        return this.id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getName() {
        return this.name;
    }
    public void setName(String name) {
        this.name = name;
    }
}
User1.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping>
    <class name="User1" table="user1" catalog="sample">
        <id name="id" type="java.lang.Integer">
            <column name="id" />
            <generator class="assigned" />
        </id>
        <property name="name" type="java.lang.String">
            <column name="name" length="45" not-null="true" />
        </property>
    </class>
</hibernate-mapping>

class节点定义
参数    描述
name    类名
table    类对应的表名
catalog    数据库目录

id节点定义
参数    描述
name    映射类中对应主键的属性名
type    上述属性的数据类型
column    主键字段名

generator子节点
参数    描述
class    主健生成方式
class属性可选项:
assigned:主键由应用逻辑产生
increment:主键按数值顺序递增
identity:采用数据库提供的主键生成机制
sequence:采用数据库提供的sequence机制生成主键
uuid.hex:由Hibernate基于128位唯一值产生算法,根据当前IP,时间,JVM启动时间,内部自增量等4个参数生成16进制数值(编码后以长度32的字符串表示)作为主键
foreign:使用外部表的字段作为主键

property节点参数
参数    描述
name    映射类属性名称
type    上述属性的数据类型
column    对应数据库表字段名
length    数据库类型长度
not-null    字段是否允许为空

Hibernate配置
Hibernate配置文件主要用于配置数据库连接和Hibernate运行时所需的各种属性。

hibernate.cfg.xml
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
          "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
  <session-factory>
    <!-- 数据库URL -->
    <property name="connection.url">jdbc:mysql://localhost:3306/sample</property>
    <!-- 数据库JDBC驱动 -->
    <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
    <!-- 数据库用户名 -->
    <property name="connection.username">root</property>
    <!-- 数据库用户密码 -->
    <property name="connection.password">root</property>
    <!-- 每个数据库都有其对应的方言以匹配其平台特性 -->
    <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
    <!-- 是否将运行期生成的SQL输出到日志以供调试 -->
    <property name="show_sql">true</property>
    <!-- 映射文件配置,注意配置文件名必须包含其相对于根的全路径 -->
    <mapping resource="User1.hbm.xml" />
  </session-factory>
</hibernate-configuration>
测试代码:

插入数据
User1 user = new User1();
user.setId(new Integer(1));
user.setName("张三");
//创建Hibernate配置对象
Configuration cfg = new Configuration().configure();
//获得会话工厂对象
SessionFactory sessionFactory = cfg.buildSessionFactory();
//获得会话对象
Session s = sessionFactory.openSession();
//启动事务
Transaction t = s.beginTransaction();
//插入数据
s.save(user);
//提交事务
t.commit();
//关闭会话
s.close();
//关闭会话工厂
sessionFactory.close();

修改数据
User1 user = new User1();
user.setId(new Integer(1));
user.setName("李四");
Configuration cfg = new Configuration().configure();
SessionFactory sessionFactory = cfg.buildSessionFactory();
Session s = sessionFactory.openSession();
Transaction t = s.beginTransaction();
//修改数据
s.update(user);
t.commit();
s.close();
sessionFactory.close();

删除数据
User1 user = new User1();
user.setId(new Integer(1));
Configuration cfg = new Configuration().configure();
SessionFactory sessionFactory = cfg.buildSessionFactory();
Session s = sessionFactory.openSession();
Transaction t = s.beginTransaction();
//删除数据
s.delete(user);
t.commit();
s.close();
sessionFactory.close();

查询数据
Configuration cfg = new Configuration().configure();
SessionFactory sessionFactory = cfg.buildSessionFactory();
Session s = sessionFactory.openSession();
Transaction t = s.beginTransaction();
//根据主键查询数据。如果查询不到,则抛出异常
User1 user = (User1) s.load(User1.class, new Integer(1));
//根据主键查询数据。如果查询不到,则返回null
//User1 user = (User1) s.get(User1.class, new Integer(1));
System.out.println(user.getId() + "\t" + user.getName());
t.commit();
s.close();
sessionFactory.close();

使用MyEclipse创建Hibernate的步骤:
1.先创建一个数据库的连接:
Window - ShowView - Other... - MyEclipse Database - Ok  在DBBrowser选项卡 空白处按右键 - new - Datebase Driver - Driver teplate选择驱动模板 - new  - Driver name (自定义名字) - Connection URL -  Username(数据库的用户名) - Userpassword(数据库的密码) - AddJARS(加入数据库驱动) - 可以选择savepassword(来保存密码) - Finish (连接创建完毕).
2.创建JAVA项目:
MyEclipse - ProjectCapabilities - addHibernateCapabilities - next - DBDriver选择前面自定义的连接 - next -是否创建SessionFactory(建议创建) - 创建包 -Finish
3. 在Hibernate.cfg.mxl中加入show_sql 还可以加format  Properties - Add - show_sql - true - ok
4.在DBBrowser 中选中自定义的数据库的连接找到对映的表右键选中Hibernate Reverse Engineering.. - Java srcfolder选择src - Hibernate mapping file选中update hibernate选中 Java Data Object选中 - next - IDGenerator(选择数据库表中id的创建方式要和表里的一至) - next - Finish
5.在src目录先创建 类 实例化实体类并给实体类里的属性赋值 通过Configuration cfg = new Configuration().configure();得到配置对象 通过SessionFactory sessionFactory = cfg.buildSessionFactory();获得会话工厂对象 通过Session s = sessionFactory.openSession();
得到会话对象 Transaction t = s.beginTransaction();启动事务通过会话对象s控制数据 最后t.commit();提交事务 s.close();sessionFactory;关闭会话对象和工厂对象.OK了大功告成.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值