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:首先创建一个实体类哦~~~,如下所示:
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之开门见山的更多相关文章
- spring+hibernate 配置多个数据源过程 以及 spring中数据源的配置方式
spring+hibernate 配置多个数据源过程 以及 spring中数据源的配置方式[部分内容转载] 2018年03月27日 18:58:41 守望dfdfdf 阅读数:62更多 个人分类: 工 ...
- hibernate多对多关联映射
关联是类(类的实例)之间的关系,表示有意义和值得关注的连接. 本系列将介绍Hibernate中主要的几种关联映射 Hibernate一对一主键单向关联Hibernate一对一主键双向关联Hiberna ...
- 解决 Springboot Unable to build Hibernate SessionFactory @Column命名不起作用
问题: Springboot启动报错: Caused by: org.springframework.beans.factory.BeanCreationException: Error creati ...
- hibernate多对一双向关联
关联是类(类的实例)之间的关系,表示有意义和值得关注的连接. 本系列将介绍Hibernate中主要的几种关联映射 Hibernate一对一主键单向关联Hibernate一对一主键双向关联Hiberna ...
- Hibernate中事务的隔离级别设置
Hibernate中事务的隔离级别,如下方法分别为1/2/4/8. 在Hibernate配置文件中设置,设置代码如下
- Hibernate中事务声明
Hibernate中JDBC事务声明,在Hibernate配置文件中加入如下代码,不做声明Hibernate默认就是JDBC事务. 一个JDBC 不能跨越多个数据库. Hibernate中JTA事务声 ...
- spring applicationContext.xml和hibernate.cfg.xml设置
applicationContext.xml配置 <?xml version="1.0" encoding="UTF-8"?> <beans ...
- [原创]关于Hibernate中的级联操作以及懒加载
Hibernate: 级联操作 一.简单的介绍 cascade和inverse (Employee – Department) Casade用来说明当对主对象进行某种操作时是否对其关联的从对象也作类似 ...
- hibernate的基本xml文件配置
需要导入基本的包hibernate下的bin下的required和同bin下optional里的c3p0包下的所有jar文件,当然要导入mysql的驱动包了.下面需要注意的是hibernate的版本就 ...
随机推荐
- 【1】存在大于1s的FullGC
目前有存在大于1s的FullGC,金桥的机器目前是2C4G的,使用的GC方法只能使用单线程进行串行的回收,导致GC比较慢. 建议可以调整GC参数,改用CMS,能够解决这个问题, 参数修改方法: 在应用 ...
- 010、base镜像 (2018-12-27 周四)
参考https://www.cnblogs.com/CloudMan6/p/6799197.html 什么是base镜像 不依赖其他镜像,从scratch构建.或者是其他可以作为基础镜 ...
- 列表控件QListWidget
列表控件可以让我们以列表形式呈现内容,是界面更加有序美观.QListWidget列表控件应当与QListWidgetItem一起使用,后者作为项被添加入列表控件中,也就是说列表控件中的每一项都是一个Q ...
- pycharm永久激活(转)
机器上安装的pycharm失效了,注册服务器也不管用了.网上找了一个比较满意的激活方法,推荐给大家: 第一步:下载jar包: 此jar包的目的就是让截获截止时间并骗过pycharm; 百度云下载地址 ...
- java线程池如何合理的设置大小
线程池究竟设置多大要看你的线程池执行的什么任务了,CPU密集型.IO密集型.混合型,任务类型不同,设置的方式也不一样 任务一般分为:CPU密集型.IO密集型.混合型,对于不同类型的任务需要分配不同大小 ...
- MySQL或MariaDB忘记root密码
当我们忘记数据库密码时,我们可以通过如下来修改! 编辑配置文件(提前最好进行备份) 然后重启服务 systemctl restart mariadb 或者 systemctl restart mysq ...
- python 面向对象的类
参考<learn python hard way> 网址:https://learnpythonthehardway.org/book/ex41.html class X(Y) " ...
- java读取视频文件时长
1.下载jar包:http://www.sauronsoftware.it/projects/jave/index.php 2.上代码 @RequestMapping(value = "am ...
- SpringBoot整合日志
Java日志 日志的接口层.抽象层 日志的实现 JCL(Jakarta Commons Logging) SLF4J(Simple Logging Facade for Java) Jboss-Log ...
- 【Python】Python-基础语法学习
基础语法学习 果然学完 C++ 后再看其他语言的确有很多的共性,只需要熟悉一下python的独特语法和 C++ 中的差异就可以写出一些小的程序,而写得过程中也再次体会出python代码的精简和灵活: ...