zoukankan      html  css  js  c++  java
  • Hibernate入门

    ORM:Object Relation Mapping;


    阻抗不匹配:现在我们常用的编程语言都是面向对象的,而常用的数据库都是关系型数据库,而我们一般如果要用Java访问MySQL,都是使用JDBC,并且要在Java代码中写SQL语句,而这点是由于面向对象和关系融合的缺点;
    而ORM框架就解决了这点;
    Hibernate是ORM框架的一种;而Hibernate属于JBoss,JBoss被Redhat收购,因此现在Hibernate属于Redhat;
    Hibernate现在已经发布版本4了,但是现在常用的还是版本3,因此我们现在就版本3进行讲解;

    ORM框架主要完成的是操作持久化对象-->操作关系型数据库的映射;


    安装Hibernate Tools插件,此插件能够方便我们我、Hibernate开发;
    Update Site:  http://download.jboss.org/jbosstools/updates/stable/helios/ 

    安装插件后,就可以很快速的创建一个hibernate.cfg.xml 和 *.hbm.xml;

    注意:因为Hibernate的目标是操作数据库,因此数据库的驱动是必须要配置的;


    一、配置Hibernate3


    制作User Library






    这样做的好处是如果以后开发需要使用Hibernate时,直接导入即可,很方便;

    这样我们Hibernate环境就配置好了;



    POJO的限制

    (1)必须有一个无参构造方法;
    (2)有一个主键(通常为id);
    (3)类不能是final的;


    二、开发一个Hibernate入门程序



    工程的目录如下:




    POJO

    package org.xiazdong;
    
    public class Person {
    	private String name;
    	private int age;
    	public String getName() {
    		return name;
    	}
    	public void setName(String name) {
    		this.name = name;
    	}
    	public int getAge() {
    		return age;
    	}
    	public void setAge(int age) {
    		this.age = age;
    	}
    	
    }
    

    Person.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">
    <!-- Generated 2012-5-13 14:23:31 by Hibernate Tools 3.4.0.CR1 -->
    <hibernate-mapping>
    	<class name="org.xiazdong.Person" table="PERSON">	<!-- 设置类,和对应的表 -->
    		<id name="name" type="java.lang.String">	<!-- id标签设置主键 -->
    		</id>
    		<property name="age" type="int">	<!-- 设置其他属性 -->
    		</property>
    	</class>
    </hibernate-mapping>
    



    Hibernate.cfg.xml(全局配置文件)

    <?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">	<!--如果使用HibernateTools,则会自动生成这些DTD -->
    <hibernate-configuration>
        <session-factory>
            <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>	<!-- 设置驱动 -->
            <property name="hibernate.connection.password">12345</property>		<!-- 设置密码 -->
            <property name="hibernate.connection.url">jdbc:mysql:///hibernate</property>	<!-- 设置URL -->
            <property name="hibernate.connection.username">root</property>	<!-- 设置用户名 -->
            <property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>	<!-- 设置数据库方言 -->
            <property name="show_sql">true</property>	<!-- 设置为true,则如果执行SQL语句,则会显示在console中 -->
           	<property name="hbm2ddl.auto">update</property>	<!-- 更新数据库 -->
            <mapping resource="org/xiazdong/Person.hbm.xml"/>	<!-- 指定映射文件 -->
        </session-factory>
    </hibernate-configuration>
    


    测试文件

    package org.xiazdong;
    
    import org.hibernate.Session;
    import org.hibernate.SessionFactory;
    import org.hibernate.Transaction;
    import org.hibernate.cfg.Configuration;
    
    
    public class Test {
    
    	public static void main(String[] args) {
    		Configuration config = new Configuration().configure();	//读取hibernate.cfg.xml
    		SessionFactory factory = config.buildSessionFactory();	//创建Session工厂
    		Session session = factory.openSession();	//创建session
    		Transaction t = session.beginTransaction();	//因为hibernate不是自动提交,因此需要创建事务
    		Person p = new Person();	//创建POJO
    		p.setName("xiazdong");
    		p.setAge(21);
    		session.save(p);	//POJO-->PO
    		t.commit();	//提交事务
    	}
    
    }
    


    小知识点:


    1.显示Mysql支持的引擎

    show engines;

    2.显示表当前使用的引擎

    show create table [表名];

  • 相关阅读:
    PeaZip 4.7.3 发布,跨平台压缩工具
    Liferea 1.8.10 发布,Linux的RSS阅读
    PyParticles 0.2.1 发布,粒子模拟工具箱
    微软公布 Windows Phone 8 多项新特性
    SecureCRT 7.0.2 发布,支持 Windows 8 系统
    Qore PostgreSQL Module 2.0 发布
    libquickmail 0.1.6 发布,邮件发送包
    Mobile Lua 6.5 发布,MoSync 的 Lua 移植版本
    企业用户缘何抓住 Windows XP 不放
    Knockout.js 2.2 发布,JavaScript UI 库
  • 原文地址:https://www.cnblogs.com/xiazdong/p/3058025.html
Copyright © 2011-2022 走看看