快速创建一个hibernate,helloworld-demo

来源:互联网 发布:好用的软件 编辑:程序博客网 时间:2024/05/16 14:25

1.快速创建一个hibernate--demo.

 1.第一步导 jar包  lib 包下的 required所有jar包,lib包 jpa下的jar包,hibernate3.jar核心包

mysql实现的jdbc包commons-collections-3.1.jar

----如果要配置oracle 则导包 ojdbc14-10.2.0.1.0.jar

2.编写实体类 ,定义属性,属性名一般和数据库的类名一致

3.在实体类同包下写一个实体类的映射文件,OR,一般格式为 实体类类名.hbm.xml

类对表,字段对属性

4.配置hibernate配置文件,将数据库等,以及实体类的映射文件 mapping进来一般格式为hibernate.cfg.xml

5.操作hibernate进行数据库操作

 

代码如下

实体类

package com.xiangshuai.entity;

 

public class Person {

   private Integer id;

    private String username;

   private String password;

         publicPerson(String username, String password) {

                  super();

                  this.username= username;

                  this.password= password;

         }

         publicPerson() {

                  super();

                  //TODO Auto-generated constructor stub

         }

         publicInteger getId() {

                  returnid;

         }

         publicvoid setId(Integer id) {

                  this.id= id;

         }

         publicString getUsername() {

                  returnusername;

         }

         publicvoid setUsername(String username) {

                  this.username= username;

         }

         publicString getPassword() {

                  returnpassword;

         }

         publicvoid setPassword(String password) {

                  this.password= password;

         }

        

}

 OR 文件Person.hbm.xml

<?xml version="1.0"encoding="UTF-8"?>

<!DOCTYPE hibernate-mapping PUBLIC"-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

 

<hibernate-mappingpackage="com.xiangshuai.entity">

   <class name="Person" table="t_person">

       <id name="id" column="id" >

           <generator class="native"/>

       </id>

       <property name="username"column="username"></property>

       <property name="password"column="password"></property>

   </class>

</hibernate-mapping>

======================================================================================

hibernate.cfg.xml配置文件---mysql

<!DOCTYPE hibernate-configuration PUBLIC

         "-//Hibernate/HibernateConfiguration DTD 3.0//EN"

         "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

 

<hibernate-configuration>

<session-factoryname="pserson">

   <!-- 方语设置在些文件夹中可以找到D:\OpenSource\frame\hibernate3\hibernate-distribution-3.6.10.Final\project\etc-->

         <propertyname="hibernate.dialect">

                  org.hibernate.dialect.MySQL5InnoDBDialect

         </property>

         <!--jdbc连接数据库设置  -->   

         <propertyname="hibernate.connection.driver_class">

                  com.mysql.jdbc.Driver

         </property>

         <propertyname="hibernate.connection.url">

                  jdbc:mysql:///hibernate3_db

         </property>

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

         <propertyname="hibernate.connection.password">30075</property>

   <!-- 杂选:在些文件夹中可以找到D:\OpenSource\frame\hibernate3\hibernate-distribution-3.6.10.Final\project\etc-->

   <!-- 展示sql到控制台 -->

         <propertyname="hibernate.show_sql">true</property>

         <!--格式sql -->

         <propertyname="hibernate.format_sql">true</property>

         <!--自动更新表结构,如梦如果表已存在就沿用表,无就创建表 -->

         <propertyname="hibernate.hbm2ddl.aut">update</property>

        

         <mappingresource="com/xiangshuai/entity/Person.hbm.xml" />

</session-factory>

</hibernate-configuration>

 

 

hibernate.cfg.xml配置文件---oracle

<?xmlversion="1.0"encoding="UTF-8"?>

<!DOCTYPEhibernate-configuration PUBLIC

    "-//Hibernate/Hibernate Configuration DTD 3.0//EN"

    "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

 

<hibernate-configuration>

    <session-factory>

        <!-- property 元素用于配置Hibernate中的属性

            :

          -->

          <!--hibernate.connection.driver_class :连接数据库的驱动  -->

        <propertyname="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>

          <!--hibernate.connection.username :连接数据库的用户名 -->

        <propertyname="hibernate.connection.username">lqx</property>

          <!--hibernate.connection.password :连接数据库的密码 -->

        <propertyname="hibernate.connection.password">lqx</property>

          <!--hibernate.connection.url :连接数据库的地址,路径 -->

        <propertyname="hibernate.connection.url">jdbc:oracle:thin:@127.0.0.1:1521:STUDENT</property>

       

        <!-- show_sql: 操作数据库时,向控制台打印sql语句 -->

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

        <!-- format_sql: 打印sql语句前,会将sql语句先格式化  -->

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

        <!-- hbm2ddl.auto: 生成表结构的策略配置

             update(最常用的取值):如果当前数据库中不存在表结构,那么自动创建表结构.

                    如果存在表结构,并且表结构与实体一致,那么不做修改

                    如果存在表结构,并且表结构与实体不一致,那么会修改表结构.会保留原有列.

             create(很少):无论是否存在表结构.每次启动Hibernate都会重新创建表结构.(数据会丢失)

            create-drop(极少):无论是否存在表结构.每次启动Hibernate都会重新创建表结构.每次Hibernate运行结束时,删除表结构.

             validate(很少):不会自动创建表结构.也不会自动维护表结构.Hibernate只校验表结构.如果表结构不一致将会抛出异常.

          -->

        <propertyname="hbm2ddl.auto">update</property>

       

         <!--使用的SQL对应的方言,此处是Oracle9方言”-->

        <propertyname="dialect">org.hibernate.dialect.Oracle10gDialect</property>

       

       

        <!-- hibernate.connection.autocommit:事务自动提交  -->

        <propertyname="hibernate.connection.autocommit">true</property>

        <!-- Session与线程绑定=>只有配置了该配置,才能使用getCurrentSession-->

        <propertyname="hibernate.current_session_context_class">thread</property>

        <!-- 引入ORM映射文件

            填写src之后的路径

         -->

        <mappingresource="com/xiangshuai/hibernate/User.hbm.xml"/>

    </session-factory>

</hibernate-configuration>

 

======================================================================================

 

操作hibernate

package com.xiangshuai.test;

 

import org.hibernate.SessionFactory;

import org.hibernate.Transaction;

import org.hibernate.cfg.Configuration;

import org.hibernate.classic.Session;

import org.junit.Test;

 

import com.xiangshuai.entity.Person;

 

public class Demo1 {

   @Test

   public void test1(){

             Configuration configure = newConfiguration().configure();

             SessionFactory sessionFactory =configure.buildSessionFactory();

             Session session =sessionFactory.openSession();

             Transaction tr =session.beginTransaction();

       Person person = new Person("小丫头","congcong");

       session.save(person);

       tr.commit();

       session.close();

    }

}

 

 

 

 

原创粉丝点击