初识hibernate,使用idea maven项目搭建
来源:互联网 发布:域名注册排行榜 编辑:程序博客网 时间:2024/06/17 19:14
hibernate 简介:
hibernate是一个开源框架,它是对象关联关系映射的框架,它对JDBC做了轻量级的封装,而我们java程序员可以使用面向对象的思想来操纵数据库。
hibernate核心接口
session:负责被持久化对象CRUD操作
sessionFactory:负责初始化hibernate,创建session对象
configuration:负责配置并启动hibernate,创建SessionFactory
Transaction:负责事物相关的操作
Query和Criteria接口:负责执行各种数据库查询
hibernate工作原理:
1.通过Configuration config = new Configuration().configure();//读取并解析hibernate.cfg.xml配置文件
2.由hibernate.cfg.xml中的<mapping resource="xx/xx/User.hbm.xml"/>读取并解析映射信息
3.通过SessionFactory sf = config.buildSessionFactory();//创建SessionFactory
4.Session session = sf.openSession();//打开Sesssion
5.Transaction tx = session.beginTransaction();//创建并启动事务Transation
6.persistent operate操作数据,持久化操作
7.tx.commit();//提交事务
8.session.close()//关闭Session
Rs.hbm.xml映射文件如下:
hibernate是一个开源框架,它是对象关联关系映射的框架,它对JDBC做了轻量级的封装,而我们java程序员可以使用面向对象的思想来操纵数据库。
hibernate核心接口
session:负责被持久化对象CRUD操作
sessionFactory:负责初始化hibernate,创建session对象
configuration:负责配置并启动hibernate,创建SessionFactory
Transaction:负责事物相关的操作
Query和Criteria接口:负责执行各种数据库查询
hibernate工作原理:
1.通过Configuration config = new Configuration().configure();//读取并解析hibernate.cfg.xml配置文件
2.由hibernate.cfg.xml中的<mapping resource="xx/xx/User.hbm.xml"/>读取并解析映射信息
3.通过SessionFactory sf = config.buildSessionFactory();//创建SessionFactory
4.Session session = sf.openSession();//打开Sesssion
5.Transaction tx = session.beginTransaction();//创建并启动事务Transation
6.persistent operate操作数据,持久化操作
7.tx.commit();//提交事务
8.session.close()//关闭Session
9.sf.close()//关闭SesstionFactory
hibernate搭建:
1.具体搭建过程体系省略,下面是搭建好的结构图:
2.pom节点如下:
<dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>RELEASE</version> </dependency> <dependency> <groupId>javaee</groupId> <artifactId>javaee-api</artifactId> <version>5</version> </dependency> <!-- hibernate核心jar包 --> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>5.1.5.Final</version> </dependency> <!-- hibernate注解 --> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-annotations</artifactId> <version>3.5.0-Final</version> </dependency> <dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <version>RELEASE</version> </dependency> </dependencies>
3.大配置的编写:
创建一个hibernate.cfg.xml文件,将之放入resource目录下,其内容如下:
<!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> <property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property> <property name="connection.url">jdbc:oracle:thin:@localhost:1521:orcl</property> <property name="connection.username">jjz</property> <property name="connection.password">jjz</property> <property name="show_sql">true</property> <property name="hbm2ddl.auto">update</property> <mapping resource="cn/jjz/pojo/Rs.hbm.xml"/> </session-factory></hibernate-configuration>
4.持久层的搭建:
将之放置在pojo下,以及相应的映射文件,如下所示:
RS类中代码:
public class Rs { private int id; private String name; private int age; 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 int getAge() { return age; } public void setAge(int age) { this.age = age; }}
Rs.hbm.xml映射文件如下:
<?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"><!-- package声明pojo类所在的包,如果不写 那么在class中需要指明pojo类所在的包 schema指数据库模式 一个模式下可以有多张表 --><hibernate-mapping package="cn.jjz.pojo"> <!-- class指映射一个实体类entity 提供了公共的无参构造方法-通过反射产生对象 属性用private修饰,并且生成对应的get/set方法 类不能用final来修饰-hibernate会产生代理类(cglib) 类需要指明标识 name表示pojo类名 table表示pojo类对应数据库中的表名;如果不写默认是类名 --> <class name="Rs" table="Rs"> <!-- id表示实体类的标识(OID) 对应数据库表中的主键 name指实体类的标识属性名 column表示对应数据库表的列名:如果不写 则数据库表中列名和属性名一致 length表示数据库表中 对应数据类型的长度 ,如果不写有默认长度 type表示类型如果不写hibernate可以找到对应pojo类的属性的类型 --> <id name="id" column="id"> <generator class="sequence"></generator> </id> <property name="name" column="name"></property> <property name="age" column="age"></property> </class></hibernate-mapping>
5.测试一下,将对应的测试类建在test下:
public class RsTest { Configuration cfg = null; SessionFactory sf = null; Session session = null; Transaction tx = null; @Test public void c() { /* * 查询 * */ cfg = new Configuration().configure(); sf = cfg.buildSessionFactory(); session = sf.openSession(); tx = session.beginTransaction(); Rs r = new Rs(); session.load(Rs.class, 2); System.out.println(r.getName()); session.close(); sf.close(); } @Test public void b(){ /* * 删除 * */ cfg=new Configuration().configure(); sf= cfg.buildSessionFactory(); session=sf.openSession(); tx=session.beginTransaction(); Rs r=new Rs(); r.setId(1); session.delete(r); tx.commit(); session.close(); sf.close(); } @Test public void a(){ //* // ** 添加 //* cfg=new Configuration().configure(); ServiceRegistry registry=new StandardServiceRegistryBuilder().configure().build(); sf=cfg.buildSessionFactory(registry); session=sf.openSession(); tx=session.beginTransaction(); Rs stu=new Rs(); stu.setName("海四达"); stu.setAge(23); session.save(stu); tx.commit(); if (session!=null&&session.isOpen()){ session.close(); sf.close(); }}}
阅读全文
0 0
- 初识hibernate,使用idea maven项目搭建
- Idea中使用Maven创建Hibernate项目
- IDEA使用Maven搭建SSM项目
- 使用idea搭建springboot的maven项目
- 使用idea 搭建ssm+maven+logback项目
- IDEA 搭建maven项目
- IDEA搭建maven项目
- idea搭建maven项目
- Idea搭建maven项目
- 【安装】IntelliJ IDEA+Maven+SpringMVC+Hibernate项目搭建运行
- 使用IDEA搭建Maven
- idea使用maven创建WebApp项目+项目搭建
- 使用IDEA搭建Maven+SpringMVC+Spring+Hibernate环境
- idea maven搭建web项目
- 初探IDEA MAVEN项目搭建
- 使用IntelliJ IDEA搭建多maven模块JAVA项目
- IDEA使用maven搭建java项目连接redis(图文)
- 使用Intellij idea搭建maven java web项目
- 码云git常用命令
- windows7+hmailserver+squirrelmail搭建邮件服务器
- 时间线MindMap泳道的使用方法
- oracle11g 使用数据泵导出导入数据
- 深入理解JVM——类加载机制
- 初识hibernate,使用idea maven项目搭建
- oracle text全文检索
- Web攻击方式以及解决办法
- osx使用cmake编译opencv错误记录
- owindows解决管理员权限问题-----------世界上最简单的解决方法
- 适配iOS 11
- Spring Boot自定义错误页面
- SQL Server定时任务的一些使用场景及方案(一)——日常任务
- 核心如何发表期刊