zoukankan      html  css  js  c++  java
  • Hibernate之开门见山

    1:SSH框架:

      Struts2:基于mvc模式的应用层框架模式(Servlet层)

      Hibernate:基于持久层的框架(数据访问层)

      Spring:创建对象对象处理的依赖关系以及框架整合(Service层)


    2:框架和之前学的对比MVC分层模式:


    搭建Hibernate环境,开发步骤:

      1:下载源码

        Hibernate官网:http://hibernate.org/ 

      2:引入jar包:(9个jar包哦~~~)

        (1)hibernate3.jar:Hibernate核心jar包文件;

        (2)lib目录下面的required目录里面的6个包

           antlr-2.7.6.jar;

           commons-collections-3.1.jar;

           dom4j-1.6.1.jar;

           javassist-3.12.0.GA.jar;

                      jta-1.1.jar;

                      slf4j-api-1.6.1.jar

        (3)lib目录下面的jpa目录里面的1个包

           hibernate-jpa-2.0-api-1.0.0.Final.jar

        (4)最后一个mysql驱动包

      3:写对象以及对象的映射;

        实体类名.java      对象

        实体类名.hbm.xml   对象的映射

      4:Hibernate配置文件:src/hibernate.cfg.xml

        数据连接配置

        加载所有的映射(*.hbm.xml)


    实例演示Hibernate之Hello world!!!

    1:第一步:肯定引入jar包咯,毕竟是框架吗!所以引入上面的9个jar包哦~~~

    2:第二步:肯定是创建数据库和数据表了,毕竟Hibernate是替换之前学的数据交互层了。

      创建user数据表:

    3:第三步:写对象和对象的映射

      3.1:首先创建一个实体类哦~~~,如下所示:

     1 package com.bie.po;
     2 /** 
     3 * @author BieHongLi 
     4 * @version 创建时间:2017年3月8日 下午5:17:23 
     5 * 
     6 */
     7 public class User {
     8 
     9     private int id;
    10     private String name;
    11     private String password;
    12     private String email;
    13     private String phone;
    14     public int getId() {
    15         return id;
    16     }
    17     public void setId(int id) {
    18         this.id = id;
    19     }
    20     public String getName() {
    21         return name;
    22     }
    23     public void setName(String name) {
    24         this.name = name;
    25     }
    26     public String getEmail() {
    27         return email;
    28     }
    29     public void setEmail(String email) {
    30         this.email = email;
    31     }
    32     public String getPhone() {
    33         return phone;
    34     }
    35     public void setPhone(String phone) {
    36         this.phone = phone;
    37     }
    38     public String getPassword() {
    39         return password;
    40     }
    41     public void setPassword(String password) {
    42         this.password = password;
    43     }
    44     
    45     
    46 }

       3.2:创建好实体类之后就配置对象的映射,毕竟这个框架的映射还是很牛逼的。

        创建User.hbm.xml,完成对象和数据表的操作;

         (1):对象与表
             (2):属性与字段的对应
             (3):类型的对应,类型默认采用属性的类型,type不写的话

     1 <?xml version="1.0"?>
     2 <!DOCTYPE hibernate-mapping PUBLIC 
     3     "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
     4     "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
     5     
     6 <hibernate-mapping package="com.bie.po"> 
     7     <!-- 操作条件:
     8         1:对象与表
     9         2:属性与字段的对应
    10         3:类型的对应,类型默认采用属性的类型,type不写的话
    11      -->
    12     <class name="User" table="user">
    13         <!-- 主键,映射 -->
    14         <id name="id" column="id">
    15             <generator class="native"></generator>
    16         </id>
    17         
    18         <!-- 非主键,映射 -->
    19         <property name="name" column="name"></property>
    20         <property name="password" column="password"></property>
    21         <property name="email" column="email"></property>
    22         <property name="phone" column="phone"></property>
    23         
    24         
    25     </class>
    26 
    27 </hibernate-mapping>

      实体类.hbm.xml如何找模板???:

        这个文件去下载的Hibernate包里面搜索一个模板,然后复制出来,方便之后使用,操作如下所示:

    4:src/hibernate.cfg.xml(寻找的目录如:hibernate-distribution-3.6.0.Finalprojectetc)

      4.1:数据连接配置

      4.2:加载所有的映射(*.hbm.xml)

     1 <!DOCTYPE hibernate-configuration PUBLIC
     2     "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
     3     "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
     4 
     5 <hibernate-configuration>
     6     <session-factory>
     7         <!-- 
     8             1:数据连接配置
     9             2:加载所有的映射(*.hbm.xml)
    10          -->
    11          
    12          <!-- 1:数据连接配置 -->
    13          <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
    14          <property name="hibernate.connection.url">jdbc:mysql:///test</property>
    15          <property name="hibernate.connection.username">root</property>
    16          <property name="hibernate.connection.password">123456</property>
    17          <!-- mysql数据库的方言 -->
    18          <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
    19          
    20          <property name="hibernate.show_sql">true</property>
    21          
    22          <!-- 2:加载所有的映射(*.hbm.xml) -->
    23          <mapping resource="com/bie/po/User.hbm.xml"/>
    24          
    25     </session-factory>
    26 </hibernate-configuration>

     5:写测试的方法,完成第一个Hibernate程序;

     1 package com.bie.test;
     2 
     3 import org.hibernate.Session;
     4 import org.hibernate.SessionFactory;
     5 import org.hibernate.Transaction;
     6 import org.hibernate.cfg.Configuration;
     7 import org.junit.Test;
     8 
     9 import com.bie.po.User;
    10 
    11 /** 
    12 * @author BieHongLi 
    13 * @version 创建时间:2017年3月8日 下午5:28:35 
    14 * 
    15 */
    16 public class HelloTest {
    17 
    18     @Test
    19     public void testHello(){
    20         //对象
    21         User user=new User();
    22         user.setName("张三");
    23         user.setPassword("123456");
    24         user.setEmail("1748741329@qq.com");
    25         user.setPhone("15236083005");
    26         
    27         //获取加载配置文件的管理类对象
    28         Configuration config=new Configuration();
    29         //默认加载src/hibernate.cfg.xml文件
    30         config.configure();
    31         //创建session的工厂文件
    32         SessionFactory sf=config.buildSessionFactory();
    33         //创建session(代表一个会话,与数据库连接的会话)
    34         Session session=sf.openSession();
    35         //开启事务
    36         Transaction tx=session.beginTransaction();
    37         //保存到数据库
    38         session.save(user);
    39         //提交事务
    40         tx.commit();
    41         //关闭
    42         session.close();
    43         //sessionFactory关闭
    44         sf.close();
    45     
    46         
    47     }
    48 }

    <!-- mysql数据库的方言 -->
    <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>

      1》如何获取mysql方言的这句org.hibernate.dialect.MySQLDialect???

        首先按着ctrl+shift+t 然后搜索MySQLDialect如下所示,然后取到下图所示即可;  

    趁年轻,我们要敢于拼搏!!!年轻就是资本啊!!!

  • 相关阅读:
    nginx升级总结,漏洞升级
    【BUG解决】在git上pull时提示You have not concluded your merge. (MERGE_HEAD exists)
    如何自签名把http网站变成https网站(https自签名方法)
    ifly
    Shell排序和二叉树排序
    C/C++复习笔记(2)
    C/C++复习笔记(1)
    C语言字符串操作
    python+flask
    C语言的一点复习
  • 原文地址:https://www.cnblogs.com/biehongli/p/6520041.html
Copyright © 2011-2022 走看看