天问九歌吧 关注:6贴子:120
  • 12回复贴,共1

【Hibernate】

只看楼主收藏回复

开发顺序:
1、将基础jar包导入
2、根据对应的表创建model——xxx类
3、创建类和表对应的配置文件:xxx类名.hbm.xml(Mapping映射)
4、创建项目通用的配置文件——hibernate.cfg.xml
5、编写Dao层


IP属地:湖南1楼2015-02-02 19:48回复
    第一个xml配置文件内容:
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >
    <hibernate-mapping package="model(类所在包名)">
    <class name="UserInfo" table="users">//你的类名和对应数据库里的表名
    <id name="id">//主键
    <generator class="native"></genetator>
    </id>
    //其他属性,如果和表中的字段名相同,则不用特别写出来,默认相同
    <property name="name"></property>
    <property name="pwd"></property>
    <property name="tel"></property>
    <property name="username"></property>
    </class>
    </hibernate-mapping>


    IP属地:湖南2楼2015-02-02 19:55
    收起回复
      第二个配置文件内容(在src目录下):
      <?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>
      <session-factory>
      <!-- 配置数据库信息-->
      <!-- 驱动加载-->
      <property name="connection.deriver_class">com.mysql.jdbc.Driver</property>
      <!-- 地址加载-->
      <property name="connection.url">jdbc:mysql://localhost:3306/数据库名</property>
      <property name="connection.username">root></property>
      <property name="connection.password">root</property>
      <!-- 配置方言(不同数据库对应不同方言,执行不同的sql语句,下面是mysql的方言)-->
      <property name="dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
      <!-- 显示sql-->
      <property name="show_sql">true</property>
      <!-- 指明跟库表匹配的类-->
      <mapping resource="model/UserInfo.hbm.xml"/>
      </session-factory>
      </hibernate-configuration>


      IP属地:湖南3楼2015-02-02 20:03
      收起回复
        使用步骤:
        1、获得配置文件
        Configuration config = new Configuration().configure();
        2、注册器,通过配置文件注册数据库信息
        ServiceRegistryBuilder srb = new ServiceRegistryBuilder().applySettings(config.getProperties());
        3、创建会话工厂
        SessionFactory sessionFact = config.buildSessionFactory(srb.buildServiceRegistry());
        4、开启会话
        Session session = sessionFact.openSession();
        5、创建事务
        Transaction tran = session.beginTransaction();
        6、保存数据或其他操作
        session.save(u);//u为对象名
        7、提交事务
        tran.commit();
        8、关闭会话
        session.cloase();


        IP属地:湖南4楼2015-02-02 20:09
        收起回复
          Hibernate的分页查询(举User类为例):
          String hql = "form User";
          int pageSize = xxx;//设置一页的记录数
          int pageNo = xxx;//设置现在是第几页(页数)
          //利用上一楼的方法得到session,此处省略不写
          Query query = session.createQuery(hql);
          query.setFirstResult((pageNo-1)*pageSize);//设置从哪一条记录开始查询,例:写0就是从1开始,以此类推
          query.setMaxResult(pageSize);//分页查询中一次取几条数据
          List<User> list = query.list();
          session.close();//关闭session
          return list;


          IP属地:湖南5楼2015-02-06 10:23
          收起回复
            Hibernate 的HQL: 简单属性查询(只查询一个属性)
            String hql = "select id from User";
            //得到session
            Query query = session.createQuery(hql);
            List<Integer> list = query.list();
            session.close();
            return list;


            IP属地:湖南6楼2015-02-06 10:27
            回复