zoukankan      html  css  js  c++  java
  • Hibernate学习笔记--第一个Hibernate框架程序

    一般使用集成开发环境是,把所需的类库添加到项目属性的库路径中,开发工具在部署时会自动复制所需要的类包到WEB-INFlib目录下

    MyEclipse中:

    创建项目,右击项目->myeclipse->Project Facets->Install Hibernate Facets即可

    程序结构

    1.建表

    本例选择Sql Server2008作为数据库 在MySQL中新增一个ztest数据库,建立 CUSTOMER 表

    CREATE TABLE CUSTOMER
    (
        CID INTEGER NOT NULL PRIMARY KEY, 
        USERNAME VARCHAR(12) NOT NULL, 
        PASSWORD VARCHAR(12) 
    );

    2.创建PO对象

    补充:POJO是Plain OrdinaryJava Object的缩写,它通指没有使用Entity Beans的普通java对象,可以把POJO作为支持业务逻辑的协助类。
    POJO实质上可以理解为简单的实体类,顾名思义POJO类的作用是方便程序员使用数据库中的数据表
     
    Customer.java
    package com.session;
    
    public class Customer {    
        private int id;
        private String username;
        private String password;
    
        public int getId() {
            return id;
        }
        public String getPassword() {
            return password;
        }
        public String getUsername() {
            return username;
        }
        public void setId(int id) {
            this.id = id;
        }
        public void setPassword(String password) {
            this.password = password;
        }
        public void setUsername(String username) {
            this.username = username;
        }
    }
    

    3.XML映像文件

    为了告诉Hibernate对象如何映像至数据库表格,需要编写一个XML映射文件,命名为Customer.hbm.xml

    与对应的表名要一致,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>
        <class name="com.session.Customer" table="CUSTOMER">
            <id name="id" column="CID" type="java.lang.Integer">
                <generator class="increment" />
            </id>
            <property name="username" column="USERNAME" type="java.lang.String"/>
            <property name="password" column="PASSWORD" type="java.lang.String"/>
        </class>
    </hibernate-mapping>

    注意

    class name =java文件完整地址+文件名

    table=数据库中建的表名

    name为java文件中的属性,column为数据库中的属性,二者对应。不要忘了添加type,否则可能出错 

    4.定义Hibernate配置文件

    主要是进行SessionFactory配置,Hibernate可以使用XML或属性文件来进行配置,下面是使用XML进行配置

    配置文件名为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">
    <hibernate-configuration>
        <session-factory>
             <!-- sql Server数据库驱动 -->  
            <property name="hibernate.connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property>  
            <!-- sql Server数据库名称 -->  
            <property name="hibernate.connection.url">jdbc:sqlserver://localhost:1433; DatabaseName=ztest</property>  
            <!-- 数据库的登陆用户名 -->  
            <property name="hibernate.connection.username">sa</property>  
            <!-- 数据库的登陆密码 -->  
            <property name="hibernate.connection.password">123</property>  
            <mapping resource ="com/session/Customer.hbm.xml"/>
            <!-- 注意:必须是“/”而不能是“.”。 -->
        </session-factory>    
        
    </hibernate-configuration>

    注意:这个文件的文件头和3中的文件头是不一样的,另外注意第三行的版本号别写错了

    另外不同的数据库驱动也不同

    5.编写应用程序

    下面为一个演示程序

    package com.session;
    
    import org.hibernate.HibernateException;
    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) {
            try {
    			SessionFactory sf =
                    new Configuration().configure().buildSessionFactory();
                Session session = sf.openSession();
                Transaction tx = session.beginTransaction();
    
                for (int i = 0; i < 200; i++) {
                    Customer customer = new Customer();
                    customer.setUsername("customer" + i);
                    customer.setPassword("customer");
                    session.save(customer);
                }
    
                tx.commit();
                session.close();
    
            } catch (HibernateException e) {
                e.printStackTrace();
            }
        }
    }
    

    编译执行Test.java

    在Sql Server2008中执行查询语句: Select * from CUSTOMER

    结果

    另附链接 2004年的一篇文章: http://blog.csdn.net/doodoofish/article/details/43207/

    好的技术会被不断发展完善。

  • 相关阅读:
    0903编写ssh实现远程执行命令 并解决粘包问题
    学习日记0829 IP协议 子网掩码 端口TCP协议的三次握手 四次挥手 套接字socket
    学习日记0828单例 OSI七层协议
    学习日记0827异常处理 元类 自定义元类 自定义元类来实例化类 属性查找顺序
    函数装饰器
    函数对象
    参数
    函数
    文件操作
    字符编码
  • 原文地址:https://www.cnblogs.com/gnivor/p/4326049.html
Copyright © 2011-2022 走看看