zoukankan      html  css  js  c++  java
  • (七)Hibernate中使用JDBC

    • 在hibernate中获取connection数据库连接有两种方法:(操作数据库常用这种方法)
    •  1. session.doReturningWork   返回一个对象,适用于查询方法
    •  2. session.doWork      不返回对象,适用于增删改

    案例一:

    package action;
    
    import java.sql.Connection;
    import java.sql.SQLException;
    
    import org.apache.commons.dbutils.QueryRunner;
    import org.apache.commons.dbutils.handlers.BeanHandler;
    import org.hibernate.Session;
    import org.hibernate.Transaction;
    import org.hibernate.cache.spi.QueryResultsRegion;
    import org.hibernate.jdbc.ReturningWork;
    
    import bean.User;
    import util.HibernateUtil;
    
    public class Query_JDBC {
        public static void main(String[] args) {
            Query_JDBC.jdbc();
        }
    
        /**
         * 在Hibernate中获取Connection接口
         */
        private static void jdbc() {
    
            Session session = null;
            Transaction tran = null;
    
            try {
    
                session = HibernateUtil.getSession();
                tran = session.beginTransaction();
    
                User user = session.doReturningWork(new ReturningWork<User>() {
    
                    @Override
                    public User execute(Connection conn) throws SQLException {
                        QueryRunner queryRunner = new QueryRunner();
                        String sql = "select username,userid,is_admin as isadmin from user where userid=1";   //数据库中的is_admin和bean中的isdmin不一致
                        User user = queryRunner.query(conn, sql,
                                new BeanHandler<User>(User.class));
    
                        return user;
                    }
    
                });
    
                System.out.println("username=" + user.getUsername() + "	"
                        + "userid=" + user.getUserid() + "	" + "isadmin?"
                        + user.getIsAdmin());
    
                tran.commit();
            } catch (Exception e) {
                e.printStackTrace();
                tran.rollback();
            } finally {
                HibernateUtil.closeSession();
            }
    
        }
    
    }

    结果:

    代码在下面章节

  • 相关阅读:
    Attach Volume 操作(Part II)
    Attach Volume 操作(Part I)
    Create Volume 操作(Part III)
    Create Volume 操作(Part II)
    Linux 内核Coding Style整理
    内核工具 – Sparse 简介
    IP101A芯片默认物理地址(PHY Adress)确定
    嵌入式设备上的 Linux 系统开发
    嵌入式Linux开发系列之一: 走进嵌入式Linux的世界
    嵌入式 Linux 应用:概述
  • 原文地址:https://www.cnblogs.com/shyroke/p/6849293.html
Copyright © 2011-2022 走看看