相关链接:

  eclipse中SSH三大框架环境搭建<一>
  eclipse中SSH三大框架环境搭建<二>

  引言:通过上两篇文章我们已经可以掌握struts2和spring的环境的搭建以及简单使用,但是在访问数据库层面使用的是传统的JDBC。在我们项目开发中使用JDBC确实是不太理想的,所以今天我给大家来讲解一下目前行业中比较流行的持久层框架——hibernate。

  第1步:我们依旧需要引入hibernate的jar包

  找到hibernate解压好的文件目录,在该目录下的lib目录下有一个required目录,将该目录下的所有jar包引入到我们项目的lib目录下。

  第2步:我们又要和配置文件打交道了,首先我们要配置一个在src目录下的一个实体映射文件entityname.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-mapping>
<class name="entity.BookCard" table="BookCard">
<id name="cid" column="cid"></id>
<property name="name" column="name" type="string" length="50" not-null="true"></property>
<property name="sex" column="sex"></property>
<property name="cardDate" column="cardDate"></property>
<property name="deposit" column="deposit"></property>
</class>
</hibernate-mapping>

  解析:1>头信息就不多说了,首先写好一个hibernate-mapping首尾标记,在标记内映射我们相对应的实体类。

     2>在class标记的name属性的值对应我们的实体类(全路径),table属性对应我们在数据库的表名

     3>id标记为我们数据库的主键配置相关信息,同理name属性中的属性值为我们实体类对象的属性,column为数据库对应表的字段。

     4>property标记中type属性为该属性对应的java数据类型,length为数据库中指定长度这里相当于varchar(50),not-null属性为指定该字段是否可以为空,默认可以为空。

  第3步:依旧是写配置文件,配置连接数据库相关信息的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 name="foo">
<!-- 配置mySql连接参数 -->
<property name="dialect">org.hibernate.dialect.MySQL5Dialect</property>
<property name="connection.pool_size">5</property>
<property name="show_sql">true</property>
<property name="format_sql">true</property>
<property name="hbm2ddl.auto">update</property> <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost:3306/CardDB</property>
<property name="connection.username">root</property>
<property name="connection.password">123456</property> <mapping resource="BookCard.hbm.xml"/>
</session-factory> </hibernate-configuration>

  解析:1>配置一个hibernate-configuration首尾标记,在其内部插入session-factory首尾标记。

     2>在property标记中name属性中指定dialect属性值配置数据库方言(数据库不同以及版本不同方言也不同,查阅相关资料可知)

     3>在property标记中name属性中指定connection.pool属性值配置连接池大小(依据访问频率配置)

     4>在property标记中name属性中指定show_sql属性值配置是否显示sql语句在控制台(开发过程中建议为true,易于调试)

     5>在property标记中name属性中指定format_sql属性值配置sql语句是否需要格式化(废话,当然要)

    * 6>在property标记中name属性中指定hbm2ddl.auto属性值配置创表信息。值为update时,若数据库没有我们实体对应的表将自动为我们创建,若存在则会更新我的表。  值为create时,每次执行时会先查找数据库是否存在这张表存在即先删除在创建,不存在即直接创建。

     7>连接数据库的驱动以及制定数据库URL,用户名和密码相信大家都懂,我就不一一介绍了。

    * 8>我们的这份文件还需映射一个资源便是我们的实体映射文件,在mapping标记中指定。

  第4步:配置完以上文件才是我们hibernate真正为我们服务的时候了,编写我们的dao来操作数据库了。

 public class BookCardDaoImpl implements BookCardDao {

     @Override
public List<BookCard> getAllCardInfo() {
//sessionFactory这个实例可以自己按常规的hibernate传统写法创建(不建议)
//可以交给spring去托管
SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
Session session = sessionFactory.openSession();
//后面当使用JPA的时候,EntityManager 类似于 Session
Query query = session.createQuery("from BookCard"); //这2行代码,后期会交给spring的AOP帮忙处理
List<BookCard> list = query.getResultList(); session.close();
sessionFactory.close();
return list;
}
}

  解析:通过上面的代码我们可以明显看出hibernate的实用性,我们的程序员再也不用写获取连接,获取sql语句的执行对象等等,以及在代码中我们都不需要关心该项目使用的是哪一个数据库了,如此一来大大提高了我们的工作效率。

  页面中的数据已经成功显示

  控制台中执行的hibernate的sql语句也正常显示出来了。

eclipse中SSH三大框架环境搭建<三>的更多相关文章

  1. eclipse中SSH三大框架环境搭建<二>

    通过上一篇博客我们可以轻松搭建strtus2的环境,接下来由我来继续介绍spring的环境搭建以及spring注入的简单使用 相关链接:eclipse中SSH三大k框架环境搭建<一> ec ...

  2. eclipse中SSH三大框架环境搭建<一>

    这里先简单介绍一下我用的三大框架版本以及下载地址 相关链接:eclipse中SSH三大框架环境搭建<二> eclipse中SSH三大框架环境搭建<三> struts-2.3.3 ...

  3. SSH三大框架的搭建整合(struts2+spring+hibernate)(转)

    原文地址:http://blog.csdn.net/kyle0349/article/details/51751913  尊重原创,请访问原文地址 SSH说的上是javaweb经典框架,不能说100% ...

  4. SSH三大框架的搭建整合(struts2+spring+hibernate)

    本文转载自:https://blog.csdn.net/kyle0349/article/details/51751913

  5. SSH三大框架合辑的搭建步骤

    v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VM ...

  6. SSH三大框架整合案例

    SSH三大框架的整合   SSH三个框架的知识点 一.Hibernate框架 1. Hibernate的核心配置文件 1.1 数据库信息.连接池配置 1.2 Hibernate信息 1.3 映射配置 ...

  7. SSH三大框架的整合

    SSH三个框架的知识点 一.Hibernate框架 1. Hibernate的核心配置文件 1.1 数据库信息.连接池配置 1.2 Hibernate信息 1.3 映射配置 1.4 Hibernate ...

  8. Maven SSH三大框架整合的加载流程

    <Maven精品教程视频\day02视频\03ssh配置文件加载过程.avi;> 此课程中讲 SSH三大框架整合的加载流程,还可以,初步接触的朋友可以听一听. < \day02视频\ ...

  9. SSM(Spring+SpringMVC+Mybatis)框架环境搭建(整合步骤)(一)

    1. 前言 最近在写毕设过程中,重新梳理了一遍SSM框架,特此记录一下. 附上源码:https://gitee.com/niceyoo/jeenotes-ssm 2. 概述 在写代码之前我们先了解一下 ...

随机推荐

  1. Dan Zhang - Visual Studio ALM MVP

    I am a Microsoft Certified Partner specialising in .NET solutions, also worked as an ALM consultant. ...

  2. HDU 4622 Reincarnation (查询一段字符串的不同子串个数,后缀自动机)

    Reincarnation Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 131072/65536 K (Java/Others)To ...

  3. python爬虫学习(2) —— 爬一下ZOL壁纸

    我喜欢去ZOL找一些动漫壁纸当作桌面,而一张一张保存显然是太慢了. 那怎么办呢,我们尝试使用简单的爬虫来解决这个问题. 0. 本爬虫目标 抓取给定分类「或子分类」网址的内容 分析并得到每个分类下的所有 ...

  4. golang中的slice翻转存在以及map中的key判断

    //slice翻转 func stringReverse(src []string){ if src == nil { panic(fmt.Errorf("the src can't be ...

  5. Easy UI常用插件使用

    一.easy UI是类似于jQuery UI的插件库,它提供了丰富的各种常用插件:tree.datagrid... tree插件: 语法:$(selector).tree([settings]); 常 ...

  6. 直线的参数方程ABC

    直线的参数方程的来源 如图所示, 直线\(l\)的倾斜角为\(\theta\),经过定点\(P_0(x_0,y_0)\),在直线上有一动点\(P(x,y)\),如果我们取直线的单位方向向量\(\vec ...

  7. WINDOW的cmd的命令【转载】

    转载地址:https://zhidao.baidu.com/question/583956458.htmlwinver---------检查windows版本 wmimgmt.msc----打开win ...

  8. JSHint配置项说明

    转自:http://www.jianshu.com/p/4cb23f9e19d3 什么是JSHint? 官方网站这样介绍: JSHint, A Static Code Analysis Tool fo ...

  9. nmap报错: Failed to open device ethxxx

    nmap报错:  Failed to open device ethxxx 周银辉 今天用nmap时, 报错:   Failed to open device eth4, 好郁闷. 调查了一下, 是w ...

  10. [转载]一张图看懂开源许可协议,开源许可证GPL、BSD、MIT、Mozilla、Apache和LGPL的区别

    本文转载自:http://blog.csdn.net/testcs_dn/article/details/38496107 开源许可证GPL.BSD.MIT.Mozilla.Apache和LGPL的区 ...