`
zhengdl126
  • 浏览: 2510503 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类

Hibernate基础和入门:新建表和插入表

    博客分类:
  • java
阅读更多


http://www.youku.com/playlist_show/id_3629207_ascending_1_page_1.html




对象模型【面向对象】:
  表示层  struts2
  业务层  spring
  持久层  Hibernate 【'冬眠' ,把实体对象【对象模型】存在数据库【关系模型】里,解决'阻抗不匹配'--对象到关系的o/r映射】 还有类

似的SUN JDO,apache OJB,TOPLINK,EJB,JPA      好处:操作对象一样来操作关系,更对象化;轻量级框架:没有侵入性,可移植性;
O/R的缺点:批量操作


POJO:最纯粹的对象,不需要继承第三方框架的类或接口。





关系模型【面向关系】:
  数据层





ooa 面向对象的分析
ood 面向对象的设计
oop 面向对象的开发

 

 

 

-----------------------------建立java project:   附eclipse项目下载TestHibernate.rar 

 


 

 

 

-----------1 导包
hibernate 包

mysql包


-----------2 配置hibernate.cfg.xml
参考hibernate.properties
适配器dialect--mysql找到mysql的分页等

<!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="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/shoppingdb</property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.connection.password">123456</property>        
   
      
    </session-factory>
</hibernate-configuration>


-----------3 配置日志调试
拷贝log4j.properties到src下即可


-----------4 对象实体类User.java     POJO对象
package com.soyo.TestHernate.entity;

public class User {
    private int id;
    private String username;
    private String password;
    private String ctime;
    private String etime;
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public String getCtime() {
        return ctime;
    }
    public void setCtime(String ctime) {
        this.ctime = ctime;
    }
    public String getEtime() {
        return etime;
    }
    public void setEtime(String etime) {
        this.etime = etime;
    }

   
   
   
}




-----------5 映射文件User.hbm.xml,和实体类放在一个目录下
参考hibernate-distribution-3.3.2.GA-dist\hibernate-distribution-

3.3.2.GA\project\testsuite\src\test\java\org\hibernate\test\interceptor\user.hbm.xml


<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping >
<!-- table指表名 -->
    <class name="com.soyo.TestHernate.entity.User" table="users">
    <!-- 主键id -->
    <id name="id" column="id"> <generator class="native"/> </id>
    <!-- 一般属性 -->
    <property name="username"/>
    <property name="password"/>
    <property name="ctime"/>
    <property name="etime"/>
    </class>
</hibernate-mapping>




-----------6 将映射文件User.hbm.xml加入到配置hibernate.cfg.xml文件中

修改hibernate.cfg.xml:

<mapping resource="com/soyo/TestHernate/entity/User.hbm.xml"/>
</session-factory>


-----------7 使用Hibernate类把对象模型变为关系模型【生成表】 可执行ExportDB.JAVA,带main函数

package com.soyo.TestHernate.entity;

import org.hibernate.cfg.Configuration;
import org.hibernate.tool.hbm2ddl.SchemaExport;

public class ExportDB {

    public static void main(String[] args) {
        Configuration cfg = new Configuration().configure();//configure()调取xml
        SchemaExport export = new SchemaExport(cfg);
        export.create(true, true);
    }

}


ExportDB.JAVA:eclpise ->run application
就可自动创建表

-----error:java.lang.NoClassDefFoundError: org/slf4j/impl/StaticLoggerBinder

需另外下载slf4j-nop-1.5.2.jar引入到工程中才行



------------------8 开发客户端Clents.java 带main函数

一个数据库对应一个SessionFactiory

package com.soyo.TestHernate.entity;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

public class Clents {

    /**
     * @param args
     */
    public static void main(String[] args) {
        Configuration cfg = new Configuration().configure();//configure()调取xml
        SessionFactory factiory = cfg.buildSessionFactory();
       
        Session session = null;
        try{
            session = factiory.openSession();
            session.beginTransaction();//开启事务
           
            User user=new User();
            //user.setId(1);
            user.setUsername("admin");
            user.setPassword("admin");
            user.setCtime("ctime");
            user.setEtime("etime");
           
            session.save(user);
           
            session.getTransaction().commit();//提交事务
        }catch (Exception e) {
            System.err.println(e.getMessage());
            session.getTransaction().rollback();//回滚事务
        }finally{
            if(session!=null)
            {
                session.close();
                }
        }
       
    }

}

  • 大小: 12.9 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics