zoukankan      html  css  js  c++  java
  • Hibernate内容详解

    一:引入Hibernatejar

    http://t.cn/EioD1xk

    二:配置Hibernate的核心配置文件hibernate.cfg.xml

    <!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
        
        <!-- hibernate的根标签 -->
        <hibernate-configuration>
            <!-- session工厂 -->
            <session-factory>
                <!-- 配置数据属性 -->
                <!-- 配置数据库驱动 -->
                <property name="connection.driver_class">
                    com.mysql.jdbc.Driver
                </property>
                
                <!--配置数据库连接-->
                <property name="connection.url">
                    jdbc:mysql://localhost:3306/test06?characterEncoding=UTF-8
                </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>
              <property name="format_sql">true</property>
              
              <!-- 配置生成策略update、create、drop -->
             <property name="hbm2ddl.auto">update</property>
             
            <!-- 配置hibernate的映射文件 -->
            <mapping resource="com/baidu/entity/User.hbm.xml"/>
            </session-factory>
        </hibernate-configuration>
    View Code

    三:创建Hibernate的映射实体类User

     View Code

    四:创建Hibernate的实体类映射文件User.hbm.xml

       <!DOCTYPE hibernate-mapping PUBLIC 
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
        
        <!-- hibernate的根映射文件 -->
        <hibernate-mapping>
            <!-- 映射的实体类 -->
            <class name="com.baidu.entity.User" table="users">
                <!-- 配置主键生成策略 -->
                <id name="uid">
                    <generator class="native"></generator>
                </id>
                
                <!-- 配置实体类中相应的属性字段 -->
                <property name="uname"></property>
                <property name="usex"></property>
                <property name="uaddress"></property>
            </class>
        </hibernate-mapping>
    View Code

    五:Hibernate的测试类TestHibernate

    public class TestHibernate {
        public static void main(String[] args) {
            //加载hibernate的核心配置文件
            Configuration configuration = new Configuration().configure();
            //获取sessionFactory
            SessionFactory sessionFactory = configuration.buildSessionFactory();
            //获取session
            Session session = sessionFactory.openSession();
            //关闭连接
            session.close();
        }
    }
    View Code

    六:用Hibernate对数据库进行增、删、查、改操作

    public class TestCurd {
        
        /**
         * 增加用户信息
         */    
        @Test
        public void saveUser() {
            try {
                //加载hibernate的核心配置文件
                Configuration configuration = new Configuration().configure();
                //创建SessionFactory
                SessionFactory sessionFactory = configuration.buildSessionFactory();
                //获取session
                Session session = sessionFactory.openSession();
                //开启事务
                Transaction tx = session.beginTransaction();
                
                //实例化User对象
                User user = new User();
                user.setUname("Jack");
                user.setUsex('男');
                user.setUaddress("北京");
                
                //添加用户信息
                session.save(user);
                tx.commit();
                
                //关闭连接
                session.close();
            } catch (Exception e) {
                // TODO Auto-generated catch block
                System.out.println("有异常!");
                e.printStackTrace();
            }
        }
        
        /**
         * 查询单个用户信息
         */
        @Test
        public void queryUserByUid() {
            try {
                //加载hibernate的核心配置文件
                Configuration configuration = new Configuration().configure();
                //创建SessionFactory
                SessionFactory sessionFactory = configuration.buildSessionFactory();
                //获取session
                Session session = sessionFactory.openSession();
                //查询用户
                User user = (User) session.get(User.class, 4);
                System.out.println(user+"========================");
                
                //关闭连接
                session.close();
            } catch (Exception e) {
                // TODO Auto-generated catch block
                System.out.println("有异常!");
                e.printStackTrace();
            }
        }
        
        /**
         * 查询所有用户信息
         */
        @Test
        public void queryAllUser() {
            try {
                //加载hibernate的核心配置文件
                Configuration configuration = new Configuration().configure();
                //创建SessionFactory
                SessionFactory sessionFactory = configuration.buildSessionFactory();
                //获取session
                Session session = sessionFactory.openSession();
                //查询用户(获取query对象)
               Criteria criteria = session.createCriteria(User.class);
                List<User> list = criteria.list();
                
                if (list.size()>0 && null!=list) {
                    for (User user : list) {
                        System.out.println(user+"============================");
                    }
                }
                
                //关闭连接
                session.close();
            } catch (Exception e) {
                // TODO Auto-generated catch block
                System.out.println("有异常!");
                e.printStackTrace();
            }
        }
        
        /**
         * 修改用户信息
         */
        @Test
        public void updateUserByUid() {
            //加载hibernate的核心配置文件
            Configuration configuration = new Configuration().configure();
            //创建SessionFactory
            SessionFactory sessionFactory = configuration.buildSessionFactory();
            //获取session
            Session session = sessionFactory.openSession();
            //开启事务
            Transaction tx = session.beginTransaction();
            
            //获取要修改的用户(先查询要修改的用户)
            User user = (User) session.get(User.class, 4);
            user.setUname("Tom");
            user.setUsex('女');
            user.setUaddress("郑州");
            
            //提交用户
            session.update(user);
            //提交事务
            tx.commit();
            //关闭session连接
            session.close();
        }
        
        /**
         * 删除用户信息
         */
        @Test
        public void deleteUserByUid() {
            //加载hibernate的核心配置文件
            Configuration configuration = new Configuration().configure();
            //创建SessionFactory
            SessionFactory sessionFactory = configuration.buildSessionFactory();
            //获取session
            Session session = sessionFactory.openSession();
            //开启事务
            Transaction tx = session.beginTransaction();
            
            //获取要修改的用户(先查询要修改的用户)
            User user = (User) session.get(User.class, 4);
            
            //提交用户
            session.delete(user);
            //提交事务
            tx.commit();
            //关闭session连接
            session.close();
        }
        
        /**
         * 分页功能
         */
        @Test
        public void pageHelper() {
            //加载hibernate的核心配置文件
            Configuration configuration = new Configuration().configure();
            //创建SessionFactory
            SessionFactory sessionFactory = configuration.buildSessionFactory();
            //获取session
            Session session = sessionFactory.openSession();
            
            //定义hql语句
            String hql = "from User";
            //查询所有数据
            Query query = session.createQuery(hql);
            //执行分页
            query.setFirstResult(0);
            query.setMaxResults(3);
            
            //查询分页列表
            List<User> list = query.list();
            //判断User是否为空
            if (list.size()>0 && null!=list) {
                for (User user : list) {
                    System.out.println(user);
                }
            }
        }
        
        
    }
    View Code

     

    山重水复疑无路,柳暗花明又一村! 专注填坑,少走弯路!
  • 相关阅读:
    不要在init和dealloc函数中使用accessor
    Xcode6.3真机测试无法选择目标机器问题
    Objective-C基础知识
    深入理解dispatch_sync
    AFNetworking 2.0教程
    使用pngcrush压缩png图片
    自定义custom Tab Bar
    CocoaPods 安装相关问题
    iOS 编程之使用Precompile Prefix Header
    Block传值
  • 原文地址:https://www.cnblogs.com/mqflive81/p/10645101.html
Copyright © 2011-2022 走看看