Hibernate(1)

一:Hibernate 的执行流程

这里写代码片
public void test(){
        //1.创建SessionFactory对象
        SessionFactory sessionFactory=null;
        //1).创建Configuration对象:对应的hibernate的基本配置信息和对象关系映射信息
        Configuration configuration=new Configuration().configure();
        //2).创建一个ServiceRegistry对象:hibernate4.x新添加的对象
        ServiceRegistry serviceRegistry=new ServiceRegistryBuilder().applySettings(configuration.getProperties()).buildServiceRegistry();
        //3).
            sessionFactory=configuration.buildSessionFactory(serviceRegistry);
        //2.创建一个Session对象
        Session session=sessionFactory.openSession();
        //3.开启事务
        Transaction transaction=session.beginTransaction();
        //4.执行保存操作
        News news=new News("aaaa","adada");
        session.save(news);
        //5.提交事务
        transaction.commit();
        //6.关闭Session 对象
        session.close();
        //7.关闭SessionFactory 对象
        sessionFactory.close();
    }

二:hibernate的优势
1:传统JDBC访问数据库操作步骤
1):加载驱动
2):建立连接
3):获取数据库操作对象
4):编写执行的sql
5):执行数据库操作
6):获取并操作结果集
7):关闭对象,回收数据库资源(关闭结果集–>关闭数据库操作对象–>关闭连接)
2:代码如下:

        Connection conn = null;  
        Statement stmt = null;  
        ResultSet rs = null;  
        try {  
            // 1、加载数据库驱动( 成功加载后,会将Driver类的实例注册到DriverManager类中)  
            Class.forName("com.mysql.jdbc.Driver");  
            // 2、获取数据库连接  
            conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/jdbctest","root" , "root");  
            // 3、获取数据库操作对象  
            stmt = conn.createStatement();  
            // 4、定义操作的SQL语句  
            String sql = "select * from user where id = 100";  
            // 5、执行数据库操作  
            rs = stmt.executeQuery(sql);  
            // 6、获取并操作结果集  
            while (rs.next()) {  
                System.out.println(rs.getInt("id"));  
                System.out.println(rs.getString("name"));  
            }  
        } catch (Exception e) {  
            e.printStackTrace();  
        } finally {  
            // 7、关闭对象,回收数据库资源  
            if (rs != null) { //关闭结果集对象  
                try {  
                    rs.close();  
                } catch (SQLException e) {  
                    e.printStackTrace();  
                }  
            }  
            if (stmt != null) { // 关闭数据库操作对象  
                try {  
                    stmt.close();  
                } catch (SQLException e) {  
                    e.printStackTrace();  
                }  
            }  
            if (conn != null) { // 关闭数据库连接对象  
                try {  
                    if (!conn.isClosed()) {  
                        conn.close();  
                    }  
                } catch (SQLException e) {  
                    e.printStackTrace();  
                }  
            }  
        }  

3:hibernate优势(通过配置文件和映射文件将持久化对象映射到数据库表中)
1):Hibernate是JDBC的轻量级封装,封装了通过JDBC访问数据操作,是一个独立的对象持久化层框架
2):由于是对JDBC的轻量级封装,内存消耗小,运行效率快
3):开发效率高
4):拥有分布式、安全检查、集群、负载均衡的支持
5):具有可扩展性,自身功能不支持时,刻字机编码进行扩展
4:hibernate三种状态
1):瞬态:该对象与数据库中的数据没有任何关联(没有雨session相关联的实例)
2):持久态:该实体对存在于session相关联的实例,hibernate会根据持久态中对象的变化而更改数据库表中的数据
3):游离态:不再有与session相关联的实例

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值