SSH Hibernate

Hibernate

标签: JAVA框架


hibernate

jdbc缺点

1 编程的时候很繁琐,用的try catch 比较多
2 jdbc没有做数据缓存
3 没有做到面向对象编程
4 sql语句的跨平台性差

hibernate 特点

1 完全面向对象编程
2 hibernate缓存  一级缓存  二级缓存 查询缓存
3 编程的时候比较简单
4 跨平台性
5 使用场合 企业内部的系统

hibernate 缺点

1 效率比较低  
2 表中的数据如果在千万级别,则hibernate不合适
3 如果表与表之间的关系特别复杂 则hibernate不合适

hibernate 环境搭建

1 创建工程

2 导入jar包

antlr-2.7.6.jar  语言转换工具 hibernate使用它实现hql到sql的转换
commons-collections-3.1.jar  apache的工具集 用来增强java对集合的处理能力
javassist-3.9.0.GA.jar  代码生成工具 
jta-1.1.jar  标准的java事务处理接口
hibernate3.jar  核心包
 slf4j-log4j12.jar  日志系统
mysql-connector-java-5.1.10-bin.jar mysql的驱动包

3 创建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>
<!-- 
一个sessionFactory代表数据库的一个连接
 -->
<session-factory>
    <!-- 链接数据库的用户名 -->
    <property name="connection.username">root</property>
    <!-- 链接数据库的密码 -->
    <property name="connection.password">123456</property>
    <!-- 链接数据库的驱动 -->
    <property name="connection.driver_class">
        com.mysql.jdbc.Driver
    </property>
    <property name="connection.url">
        jdbc:mysql://localhost:3306/jdbc01
    </property>
    <!-- 方言
        告诉hibernate使用什么样的数据库 ,hibernate会在底层拼接不同的sql语句
    -->
    <property name="dialect">
        org.hibernate.dialect.MySQLDialect
    </property>
    <!-- 
        根据模型类生成表  这个类叫做 持久化类
        根据持久化类生成表的策略:
        validate 通过映射文件检查持久化类与表的对应关系
        update 每次hibernate启动的时候,检查表是否存在,如果不存在,创建,如果存在,则什么都不做
        create每次hibernate启动的时候 根据持久化类生成表
        create-drop 
    -->
    <property name="hbm2ddl.auto">update</property>
    <mapping resource="com/cd/domain/Person.hbm.xml" />

</session-factory>

</hibernate-configuration>
 主要的用途  告诉hibernate链接的数据库信息,用的是什么样的数据库根据持久化类和映射文件生成表的策略

4 持久化类和映射文件

5 生成表

sessionFactory

1.hibernate中的配置文件,映射文件,持久化类的信息
2.sessionFactory中存放的信息都是共享的信息
3.一个hibernate框架只有一个sessionFactory

sSession

1.得到一个session,相当于打开了一个数据库的链接
2.在hibernate中,对数据的crud(增删改查)操作都是由session来完成的
    save    方法 把一个持久化类的对象添加到数据库
    get     方法 从数据库中根据主键提取出一个对象
    update  方法 更新对象到数据库
    delet   方法 删除 对象

transation

hibernate的事物默认不是自动提交的,需要我们手动提交事物后,数据库才更新

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值