zoukankan      html  css  js  c++  java
  • Java框架技术(framework technology)

    1.hibernate框架:对JDBC做了轻量级的封装的框架

      ORM:对象关系映射   即数据库表和持久化类的映射关系

      持久层框架:优秀的JAVA持久化(即保存到ROM中)层解决框架

    在Eclipse中使用Hibernate:

      1.导入jar包,在/required文件夹下的8个必须的jar包(另外还有/optional下可选的jar包)

    antlr-2.7.7.jar
    dom4j-1.6.1.jar:xml解析
    hibernate-commons-annotations-4.0.1.Final:注解
    hibernate-core-4.1.4.Final.jar:核心包
    hibernate-jpa-2.0-api-1.0.1.Final.jar:jpa框架
    javassist-3.15.0-GA.jar:字节码文件处理的jar
    jboss-logging-3.1.0.GA.jar:日志的处理
    jboss-transaction-api_1.1_spec-1.0.0.Final.jar:事务管理

      2.在src下新建一个配置文件:hibernate.cfg.xml(hibernate的核心配置文件)

        dtd结尾的文件:规定了这个xml应该出现的节点    

    <!-- 添加声明:给节点添加约束 -->
    <!DOCTYPE hibernate-configuration PUBLIC
    "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
    1.根节点:
    <hibernate-configuration>
    2.子节点:
    <session-factory>
    <!-- 多了一个配置:方言 -->
    <property name="dialect">org.hibernate.dialect.MySQL5Dialect</property>

    3.在配置文件中配置映射文件
    <mapping resource="映射文件的地址" />
    4.读取配置文件,获取sessionFactory
    Configuration config = null;
    SessionFactory sessionFactory = null;
    // 服务的注册
    ServiceRegistry service = null;
    public Session getSession() {
    //读取hibernate.cfg.xml
    config=new Configuration().configure();
    //获取hibernate.cfg.xml中的配置
    Properties settings=config.getProperties();
    //,目的;获取service对象
    //先创建一个builder对象
    ServiceRegistryBuilder builder=new ServiceRegistryBuilder();
    builder.applySettings(settings);
    service=builder.buildServiceRegistry();
    sessionFactory=config.buildSessionFactory(service);
    return sessionFactory.openSession();
    }
    5.查询单个对象:session.get(Class class,主键);
    保存:session.save(对象);
    开启事务,提交事务
    4.session方法:
    1.get()和load()都是查询单个对象:
    1.get():如果没有查到数据,返回null
    2.load():在使用这个对象时抛异常

    5.hibernate对应的java对象的三种状态:
    1.瞬时状态
    2.持久
    3.游离状态
    6.脏检查机制:
    对持久对象进行修改操作,当提交事务时,hibernate 会对数据库进行数据检查。以持久对象的数据为准
    7.刷新缓存的机制:
    1.当提交事务
    2.session.flush();没有提交事务
    8.update和marge方法的区别:
    update直接修改。
    marge先查询这个对象,查到了修改。查不到添加

    PS:1.Framework中都使用了Java中的反射(reflect)

      2.Hibernate中通过session进行增删改需要提交事务

  • 相关阅读:
    Redisson 实现分布式锁原理分析
    redis如何避免释放锁时把别人的锁释放掉
    记一次org.springframework.transaction.UnexpectedRollbackException: Transaction rolled back because it has been marked as rollback-only异常
    1.编译chromium
    Win10更新后wireshark无法获取网络接口
    ASIO库使用注意事项
    使用gdb添加断点的几种方式
    select、poll、epoll的比较
    CMakeLists.txt编写常用命令
    Ubuntu下使用linuxdeployqt打包Qt程序
  • 原文地址:https://www.cnblogs.com/dgyw/p/5729008.html
Copyright © 2011-2022 走看看