zoukankan      html  css  js  c++  java
  • 使用hibernate 框架搭建的helloworld

    在学框架hibernate 框架的时候走了很多的弯路

    版本:

    将第一个hibernate记录下来

    首先 是搭建的结构:

    hibernate.cfg.xml文件内容:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE hibernate-configuration PUBLIC
            "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
            "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
    <hibernate-configuration>
        <session-factory>
        
        <!-- 链接数据库基本信息 -->
        <property name="connection.username">root</property>
        <property name="connection.password">123456</property>
        <property name="connection.driver_class">com.mysql.jdbc.Driver</property>  
        <property name="connection.url">jdbc:mysql:///test</property>
        
        <!-- 配置hibernate的基本信息  数据库方言 -->
        <property name="dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
       
        <!-- 执行操作时是否在控制台打印 SQL -->
        <property name="show_sql">true</property>
        
        <!-- 是否对 SQL 进行格式化 -->
        <property name="format_sql">true</property>
        
        <!-- 指定自动生成数据表的策略 -->
        <property name="hbm2ddl.auto">update</property>
            
        <!-- 指定关联的 .hbm.xml 文件 -->
        <mapping resource="com/atguigu/hibernate/helloworld/mytest.hbm.xml"/>
        
        </session-factory>
    </hibernate-configuration>

    mytest.java文件:

    package com.atguigu.hibernate.helloworld;
    
    public class mytest {
        int id;
        String name;
        public int getId() {
            return id;
        }
        public void setId(int id) {
            this.id = id;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public mytest(String name) {
            super();
            this.name = name;
        }
        public mytest()
        {
            
        }
        @Override
        public String toString() {
            return "mytest [id=" + id + ", name=" + name + "]";
        }
    }

    mytest.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 2016-8-7 3:19:11 by Hibernate Tools 3.5.0.Final -->
    <hibernate-mapping>
        <class name="com.atguigu.hibernate.helloworld.mytest" table="MYTEST">
            <id name="id" type="int">
                <column name="ID" />
                <generator class="native" />
            </id>
            <property name="name" type="java.lang.String">
                <column name="NAME" />
            </property>
        </class>
    </hibernate-mapping>

    HibernateTest.java文件  jUnit测试

    package com.atguigu.hibernate.helloworld;
    
    import static org.junit.Assert.*;
    
    import org.hibernate.Session;
    import org.hibernate.SessionFactory;
    import org.hibernate.Transaction;
    import org.hibernate.boot.registry.StandardServiceRegistry;
    import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
    import org.hibernate.cfg.Configuration;
    import org.hibernate.service.ServiceRegistry;
    import org.junit.Test;
    
    public class HibernateTest {
    
        @Test
        public void test() {
    //1. 创建一个 SessionFactory 对象 SessionFactory sessionFactory
    = null;
    //1). 创建 Configuration 对象: 对应 hibernate 的基本配置信息和 对象关系映射信息 Configuration configuration
    = new Configuration().configure();


             //4.0 之前这样创建
              // sessionFactory = configuration.buildSessionFactory();

              //2). 创建一个 ServiceRegistry 对象: hibernate 4.x 新添加的对象 
               //hibernate 的任何配置和服务都需要在该对象中注册后才能有效. 但是这个也已经失效了 
                //  ServiceRegistry serviceRegistry =
                 //  new ServiceRegistryBuilder().applySettings(configuration.getProperties())
                 //.buildServiceRegistry();

           //2). 创建一个StandardServiceRegistry

      StandardServiceRegistryBuilder standardServiceRegistryBuilder = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties());
    StandardServiceRegistry standardServiceRegistry
    = standardServiceRegistryBuilder.build();
    sessionFactory
    = configuration.buildSessionFactory(standardServiceRegistry);
    Session session
    = sessionFactory.openSession(); //3. 开启事务 Transaction transaction = session.beginTransaction();

    //4. 执行保存操作
    mytest my = new mytest ("ATGUIGU"); session.save(my);

    //5. 提交事务

    transaction.commit();

    //6. 关闭 Session

    session.close();

    //7. 关闭 SessionFactory 对象

    sessionFactory.close(); } }

    运行结果:

  • 相关阅读:
    关于32位操作系统和64位操作系统对InstallShield打包的影响
    NEWS: Symantec宣布Wise Package Studio将终止
    InstallShield 2012新功能试用(2) 调用MsiGetProperty等MSI API发生变化
    Basic INFO 在命令行Build InstallShield安装包工程获得压缩安装包
    NEWS InstallShield 2012 Service Pack 1发布
    Basic INFO InstallShield Basic MSI工程中如何在SetupCompleteSuccess界面中启动Readme
    Basic INFO InstallShield的脚本编辑器中如何显示代码行号
    Basic INFO 关于在InstallShield制作的安装包界面中删除InstallShield文字的厂商回复
    Basic INFO InstallShield工程中如何让产品的快捷方式名称始终与产品名保持一致
    Basic INFO: 创建隐藏文件夹
  • 原文地址:https://www.cnblogs.com/2714585551summer/p/5745346.html
Copyright © 2011-2022 走看看