zoukankan      html  css  js  c++  java
  • Hibernate—01

    Hibernate_01

    一、要导的包:

    1、核心包

    2、Required里面的全部

    3、Bytecode>cglib....

    4、Slf4jnop1.5.8.jar

    二、copy配置文件:hibernate.cfg.xml放入src

    project>etc>hibernate.cfg.xml

    并将其改成如下:

    <hibernate-configuration>

    <session-factory>

    <property name="current_session_context_class">thread</property>//改成sf.getcurrentSession()后应该加的属性

    //自动生成的mysql驱动

    自动生成如下代码:

    <property name="myeclipse.connection.profile">mysql</property>

    <property name="hibernate.connection.url">

    jdbc:mysql:///test

    </property>

    <property name="hibernate.connection.username">root</property>

    <property name="hibernate.connection.password">root</property>

    <property name="hibernate.connection.driver_class">

    com.mysql.jdbc.Driver

    </property>

    <property name="hibernate.dialect">

    org.hibernate.dialect.MySQLDialect//此处mysql后加5速度会更快

    </property>

     

    自动生成如下代码:

    <property name="show_sql">true</property>

    <property name="format_sql">true</property>

    <property name="hbm2ddl.auto">update</property>//自动生成表

     

    自动生成代码如下:

    <mapping resource="com/ecjtu/po/User.hbm.xml" />//copyUser.hbm.xml在mapping中配置

     

    </session-factory>

    </hibernate-configuration>

    三、写po,与pojo的写法一样

    四、Copy 文件Item.hbm.xml放入po所在的包下

    Project>testing>..........>test>cache

    之后将其名字改成和相应的po相关的名字,如:User.hbm.xml

    五、Class

    package com.ecjtu.hibernate;

    import org.hibernate.cfg.Configuration;

    import org.hibernate.tool.hbm2ddl.SchemaExport;

    public class Test {

    public static void main(String[] args) {

    Configuration cfg=new Configuration().configure();

    SchemaExport ex=new SchemaExport(cfg);

    ex.create(true, true);

    }

    }

    六、测试类,自己写,不用继承。

    package com.ecjtu.hibernateTest;

    import java.util.List;

    import org.hibernate.HibernateException;

    import org.hibernate.Query;

    import org.hibernate.Session;

    import org.hibernate.SessionFactory;

    import org.hibernate.Transaction;

    import org.hibernate.cfg.Configuration;

    import org.junit.Test;

     

    import com.ecjtu.po.User;

    import com.ecjtu.util.HibernateUtil;

    public class HibernateTest {

      @Test

      public void hibernate(){

    Configuration cfg=new Configuration().configure();

    SessionFactory sf=cfg.buildSessionFactory();

    Session session=HibernateUtil.getSession(sf);

    Transaction ts=session.getTransaction();

    try {

    ts.begin();

    User user=new User();

    user.setUsername("jack");

    user.setPassword("123456");

    user.setAge(20);//瞬时状态

    session.save(user);//持久化状态

    //User user=(User)session.load(User.class,1);

    //User user=(User)session.get(User.class,1);

    //getload的区别:

    Get马上发出SQL语句,返回的是真实的对象,对象中的属性都有值,load不会马上发出SQL语句,返回的是代理对象,当正真使用这个对象是才发出SQL语句,load是使用的技术叫lazy(懒加载、延迟加载)

    ts.commit();

    //离线状态

    } catch (HibernateException e) {

    ts.rollback();

    e.printStackTrace();

    }

      }

    }

     

  • 相关阅读:
    windwos8.1英文版安装SQL2008 R2中断停止的解决方案
    indwows8.1 英文版64位安装数据库时出现The ENU localization is not supported by this SQL Server media
    Server Tomcat v7.0 Server at localhost was unable to start within 45 seconds
    SQL数据附加问题
    eclipse,myeclipse中集合svn的方法
    JAVA SSH 框架介绍
    SSH框架-相关知识点
    SuperMapRealSpace Heading Tilt Roll的理解
    SuperMap iserver manage不能访问本地目的(IE9)
    Myeclipse中js文件中的乱码处理
  • 原文地址:https://www.cnblogs.com/stting/p/2751952.html
Copyright © 2011-2022 走看看