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.Final\project\etc)

  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如下所示,然后取到下图所示即可;  

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

时间: 2024-10-12 20:50:29

Hibernate之开门见山的相关文章

hibernate中用annotation注解怎么样配置TIMESTAMP类型的数据呢

问题描述 请问hibernate中用annotation注解怎么样配置TIMESTAMP类型的数据并且能自动插入和更新呢?就是相当于mysql中timeTIMESTAMPDEFAULTCURRENT_TIMESTAMPONUPDATECURRENT_TIMESTAMP;这样的数据列,在hibernate中怎么样用annotation注解来配置呢(不要xml的配置方式).各位大虾帮帮忙啊,跪求中-- 解决方案 解决方案二:没用过注解吖.看下这个资料吧解决方案三:@Column(name="D_UP

混合Eclipse、WTP、Struts和Hibernate

使用Eclipse Web Tools Project.Tomcat应用服务器和MySQL数据库服务器,创建了一个Web应用程序.尽管该应用程序(DBTest)可能会很不错,但是也会存在一些局限性: 在servlet代码中,Java Server Pages (JSP) 名称是硬编码的 SQL也被硬编码到命令类中. 幸运的是,这些问题可以通过两种有趣的解决方案得以解决.第一个问题可通过使用开源Struts框架解决,该框架通过将模型动作映射到一个简单配置文件中的视图组件(比如JSP),从而分离应用

系统学习hibernate之三 transient、persistent、detached状态

transient.persistent.detached状态关系图如下: 1.transient状态的特征: * 在数据库中没有与之匹配的数据 * 没有纳入session的管理 2.persistent状态的特征: * persistent状态的对象在数据库中有与之匹配的数据 * 纳入了session的管理 * 在清理缓存(脏数据检查)的时候,会和数据库同步 3.detached状态的特征: * 在数据库中有与之匹配的数据 * 没有纳入session的管理 PS:了解这几种状态对深入使用hib

Hibernate流行架构浅析

本文向大家介绍Hibernate架构,可能好多人还不了解Hibernate架构,没有关系,看完本文你肯定有不少收获,希望本文能教会你更多东西. 用java来建立一个很有价值的web 应用不是一个简单的任务.在架构这个应用时要考虑很多的因素和问题.从更高的层次来看,开发人员面临着关于如何构建用户接口,何处驻留业务逻辑,以及如何实现数据持久性这些问题.这3层都有各自的问题需要回答.而每一层又需要实现那些技术?应用如何设计来进行松散耦合并能进行灵活变更?应用架构是否允许某一层变更而不影响到其它的层次?

Unitils+hibernate+Spring+PostgreSql做dao层测试遇到的错误

这两天看陈雄华的书<Spring3.0企业开发实战>17章做dao层的测试,由于使用postgreSql数据库,所以遇到了不少错误,很多问题百度都没找到答案,所以记录下来给遇到同样错误的童鞋做个参考.下面是我遇到的问题: 1.unitils目前还不支持Hibernate4,所以使用hibernate4的童鞋,要么换hibernate3要么自己用dbUnit做测试. 2.org.unitils.core.UnitilsException: Missing configuration for or

Java Persistence with Hibernate中文版Hibernate实战第2版出版

Java Persistence with Hibernate中文版Hibernate实战第2版出版 图灵出版社官方Hibernate实战(第2版)链接为: http://www.turingbook.com/Books/ShowBook.aspx?BookID=260 书 名: Hibernate实战(第2版) 评论星级: **** 书 号: 978-7-115-17448-2 原 书 名: Java Persistence with Hibernate 原出版社: Manning Publi

org.hibernate.PropertyAccessException: Null value was assigned to a property of primitive type setter of com.*.Paper.totalTime

at org.hibernate.property.BasicPropertyAccessor$BasicSetter.set(BasicPropertyAccessor.java:109) at org.hibernate.tuple.entity.AbstractEntityTuplizer.setPropertyValues(AbstractEntityTuplizer.java:586) at org.hibernate.tuple.entity.PojoEntityTuplizer.s

s2sh框架整合,hibernate无法执行删除问题

问题描述 s2sh框架整合,hibernate无法执行删除问题 dao层的代码 public void deleteDepartment(Serializable id,String delMode) { Department department=this.getDepartmentById(id); //通过页面出来的参书id,获得 这个对象 if("del_pre_relation".equals(delMode)){ Set users = department.getUser

java-关于spring+hibernate 注入sessionFactory为null的问题

问题描述 关于spring+hibernate 注入sessionFactory为null的问题 最近一个项目需要用到struts2+spring+hibernate组合框架,我在一点一点的做配置,但做到注入SessionFactory时,一直不成功,在网上搜的一些解决方案也都不适用.故在此发布,希望高手们不吝赐教.web.xml的配置为: <?xml version=""1.0"" encoding=""UTF-8""