相关链接:

  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. PostgreSQL-join多表连接查询和子查询

    一.多表连接查询 1.连接方式概览 [inner] join 内连接:表A和表B以元组为单位做一个笛卡尔积,记为表C,然后在C中挑选出满足符合on 语句后边的限制条件的内容. left [outer] ...

  2. JavaScript 动态插入 CSS

    写组件时有时想把一些组件特性相关的 CSS 样式封装在 JS 里,这样更内聚,改起来方便.JS 动态插入 CSS 两个步骤就可以 创建一个 style 对象 使用 stylesheet 的 inser ...

  3. window 和 linux 环境下杀死tomcat进程——也可以解决其他端口被占用的问题

    1.应用场景 在Windows或者linux操作系统中,我们在启动一个tomcat服务器时,经常会发现8080端口已经被占用的错误,而我们又不知道如何停止这个tomcat服务器. 2.window环境 ...

  4. Chrome

    一.简介 二.安装 1)离线版 http://www.google.cn/chrome/browser/thankyou.html?statcb=1&platform=win64&st ...

  5. 利用oneproxy部署mysql数据库的读写分离

    实验系统:CentOS 6.6_x86_64 实验前提:防火墙和selinux都关闭 实验说明:本实验共有4台主机,IP分配如拓扑 实验软件:mariadb-10.0.20 oneproxy-rhel ...

  6. hdu-5988 Coding Contest(费用流)

    题目链接: Coding Contest Time Limit: 2000/1000 MS (Java/Others)     Memory Limit: 65536/65536 K (Java/Ot ...

  7. python3使用pyqt5制作一个超简单浏览器

    我们使用的是QWebview模块,这里也主要是展示下QWebview的用法. 之前在网上找了半天的解析网页的内容,都不是很清楚. 这是核心代码: webview = Qwebview() webvie ...

  8. UVALive 4431 Fruit Weights --floyd,差分约束?

    题意: 给出一些关系用aX <= bY表示, 最后查询aX 和 bY的关系,是>=,==,<=,还是不能确定,还是出现了矛盾. 解法:对每一个关系其实都可以建一条X->Y的边, ...

  9. Shiro - 限制并发人数登录与剔除

    import org.apache.shiro.cache.Cache; import org.apache.shiro.cache.CacheManager; import org.apache.s ...

  10. [tem]RMQ(st)

    倍增思想 代码中有两个测试 #include <iostream> #include <cmath> using namespace std; const int N=1e5; ...