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:首先创建一个实体类哦~~~,如下所示:

 package com.bie.po;
/**
* @author BieHongLi
* @version 创建时间:2017年3月8日 下午5:17:23
*
*/
public class User { private int id;
private String name;
private String password;
private String email;
private String phone;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
} }

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

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

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

 <?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="com.bie.po">
<!-- 操作条件:
1:对象与表
2:属性与字段的对应
3:类型的对应,类型默认采用属性的类型,type不写的话
-->
<class name="User" table="user">
<!-- 主键,映射 -->
<id name="id" column="id">
<generator class="native"></generator>
</id> <!-- 非主键,映射 -->
<property name="name" column="name"></property>
<property name="password" column="password"></property>
<property name="email" column="email"></property>
<property name="phone" column="phone"></property> </class> </hibernate-mapping>

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

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

4:src/hibernate.cfg.xml(寻找的目录如:\hibernate-distribution-3.6.0.Final\project\etc)

  4.1:数据连接配置

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

 <!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>
<!--
1:数据连接配置
2:加载所有的映射(*.hbm.xml)
--> <!-- 1:数据连接配置 -->
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql:///test</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">123456</property>
<!-- mysql数据库的方言 -->
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> <property name="hibernate.show_sql">true</property> <!-- 2:加载所有的映射(*.hbm.xml) -->
<mapping resource="com/bie/po/User.hbm.xml"/> </session-factory>
</hibernate-configuration>

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

 package com.bie.test;

 import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.junit.Test; import com.bie.po.User; /**
* @author BieHongLi
* @version 创建时间:2017年3月8日 下午5:28:35
*
*/
public class HelloTest { @Test
public void testHello(){
//对象
User user=new User();
user.setName("张三");
user.setPassword("123456");
user.setEmail("1748741329@qq.com");
user.setPhone("15236083005"); //获取加载配置文件的管理类对象
Configuration config=new Configuration();
//默认加载src/hibernate.cfg.xml文件
config.configure();
//创建session的工厂文件
SessionFactory sf=config.buildSessionFactory();
//创建session(代表一个会话,与数据库连接的会话)
Session session=sf.openSession();
//开启事务
Transaction tx=session.beginTransaction();
//保存到数据库
session.save(user);
//提交事务
tx.commit();
//关闭
session.close();
//sessionFactory关闭
sf.close(); }
}

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

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

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

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

Hibernate之开门见山的更多相关文章

  1. spring+hibernate 配置多个数据源过程 以及 spring中数据源的配置方式

    spring+hibernate 配置多个数据源过程 以及 spring中数据源的配置方式[部分内容转载] 2018年03月27日 18:58:41 守望dfdfdf 阅读数:62更多 个人分类: 工 ...

  2. hibernate多对多关联映射

    关联是类(类的实例)之间的关系,表示有意义和值得关注的连接. 本系列将介绍Hibernate中主要的几种关联映射 Hibernate一对一主键单向关联Hibernate一对一主键双向关联Hiberna ...

  3. 解决 Springboot Unable to build Hibernate SessionFactory @Column命名不起作用

    问题: Springboot启动报错: Caused by: org.springframework.beans.factory.BeanCreationException: Error creati ...

  4. hibernate多对一双向关联

    关联是类(类的实例)之间的关系,表示有意义和值得关注的连接. 本系列将介绍Hibernate中主要的几种关联映射 Hibernate一对一主键单向关联Hibernate一对一主键双向关联Hiberna ...

  5. Hibernate中事务的隔离级别设置

    Hibernate中事务的隔离级别,如下方法分别为1/2/4/8. 在Hibernate配置文件中设置,设置代码如下

  6. Hibernate中事务声明

    Hibernate中JDBC事务声明,在Hibernate配置文件中加入如下代码,不做声明Hibernate默认就是JDBC事务. 一个JDBC 不能跨越多个数据库. Hibernate中JTA事务声 ...

  7. spring applicationContext.xml和hibernate.cfg.xml设置

    applicationContext.xml配置 <?xml version="1.0" encoding="UTF-8"?> <beans ...

  8. [原创]关于Hibernate中的级联操作以及懒加载

    Hibernate: 级联操作 一.简单的介绍 cascade和inverse (Employee – Department) Casade用来说明当对主对象进行某种操作时是否对其关联的从对象也作类似 ...

  9. hibernate的基本xml文件配置

    需要导入基本的包hibernate下的bin下的required和同bin下optional里的c3p0包下的所有jar文件,当然要导入mysql的驱动包了.下面需要注意的是hibernate的版本就 ...

随机推荐

  1. 服务器上的XML

    若想让浏览器能访问Web项目,需要配置服务器里的XML文件,XML文件是类似于HtML文件的纯文本文件,可以通过Web服务器轻松的存储和生成. XML可以通过ASP,PHP,数据库生成XML

  2. 转--利用hexo搭建个人静态博客

    引用地址 可谓图文并茂,可以配合 七牛云存储(做图片等文件服务器),搭建好看的个人博客 hexo 官方指导文档 主题 官网教程 问题集锦 简书 http://blog.csdn.net/wx_9624 ...

  3. 1.springboot:入门程序

    一.Spring Boot 简介 官网英文: Spring Boot makes it easy to create stand-alone, production-grade Spring base ...

  4. writen.c

    #include <unistd.h> #include <errno.h> ssize_t writen(int fd, const void *vptr, size_t n ...

  5. JS——页面倒计时跳转

    Js几秒后倒计时跳转 <html><head><title>出错啦~~~</title><link href="css/login1.c ...

  6. 利用 python requests完成接口文件上传

    最近在准备一个公开课,主题就是利用不同的语言和不同的工具去实现文件的上传和下载. 在利用Jmeter去实现功能的时候,以及利用loadrunner去写脚本的时候,都很顺利,没有任何问题,当我尝试用Py ...

  7. centos6 python 安装 sqlite 解决 No module named ‘_sqlite3′

    原文连接: http://blog.csdn.net/jaket5219999/article/details/53512071 系统red hat6.7 也即centos6.7 python3.5. ...

  8. mysql 案例 ~ pt-io工具的使用

    一 简介:如何使用pt-iopfile调查io具体信息二 目的:利用pt-iopfile分析mysql内部IO操作密集的文件,用以发现问题三 使用: pt-iopfile -p mysql_pid   ...

  9. Android 常用 adb 命令总结【转】

    原文链接 针对移动端 Android 的测试, adb 命令是很重要的一个点,必须将常用的 adb 命令熟记于心, 将会为 Android 测试带来很大的方便,其中很多命令将会用于自动化测试的脚本当中 ...

  10. ResNet152网络复现(Caffe)

    一.准备数据集 1)  下载数据集 Imagnet网站上下载了三类图片,分别是big cat.dog.fish,其中训练集的图片数一共是4149,测试集的图片数是1003,训练集和测试集的图片数比例4 ...