hibernate框架的搭建与简单实现增删改
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用。
首先搭建环境:
一、导入jar包。
1.hibernate的jar包
2.jdbc的jar包

二、配置Hibernate。建立hibernate.cfg.xml文件
相关的内容:
1.hibernate.cfg.xml -- 包所在的文件夹的project里去搜索复制
2.每个配置项的值:project/etc/hibernate.properties中搜索

新建hibernate.cfg.xml
<!--
~ Hibernate, Relational Persistence for Idiomatic Java
~
~ License: GNU Lesser General Public License (LGPL), version 2.1 or later.
~ See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
-->
<!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="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password"></property>
<property name="hibernate.connection.url">jdbc:mysql://127.0.0.1:3306/mydb?characterEncoding=GBK</property>
<property name="show_sql">true</property>//显示sql语句,为true则显示,false为不显示
<!-- 表映射加载 -->
<mapping resource="com/model/Fruit.hbm.xml"/>
</session-factory>
</hibernate-configuration>
ORM
三、准备数据库
四、准备实体(建议使用:引用类型。建议类名属性名与列名一致)
五、准备映射文件 实体类名.hbm.xml 例:Fruit.hbm.xml
方法:从project文件夹中搜索hbm.xml。复制改
在hibernate.cfg.xml下,加上<mapping resouse="映射文件路径"/>映射
新建Fruit.hbm.xml
<?xml version="1.0"?>
<!--
~ Hibernate, Relational Persistence for Idiomatic Java
~
~ License: GNU Lesser General Public License (LGPL), version 2.1 or later.
~ See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
-->
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping default-lazy="false" package="com.model"> <class name="Fruit" table="Fruit">
<id name="ids">//主键
<generator class="assigned"/>
</id>
<property name="name"/>//非主键
<property name="price"/>
<property name="source"/>
<property name="numbers"/>
<property name="image"/> </class> </hibernate-mapping>
新建一个测试类test.java
package com.test; import java.util.List; import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.*; import com.model.Fruit; public class Ceshi { public static void main(String[] args) {
// TODO 自动生成的方法存根
Configuration config = new Configuration().configure();//读取hibernate.cfg.xml的配置,加载Hibernate的类库
SessionFactory factory= config.buildSessionFactory();//根据配置,生成session工厂
Session session = factory.openSession();//用工厂来生成session
//System.out.println(session.isConnected()); //insert
// Fruit f = new Fruit();
// f.setIds("s001");
// f.setName("猕猴桃");
// f.setPrice(10.0);
// f.setNumbers(200);
// session.beginTransaction();//事务开始
// session.save(f);//用session保存到数据库
// session.getTransaction().commit();//事务提交 //select
// 查单条记录
// Fruit f= new Fruit();
//
// f=session.get(Fruit.class,"s001");
// System.out.println(f.getIds()+f.getName()+f.getNumbers());
//查所有
// List<Fruit> list= session.createQuery("from Fruit").getResultList();
// for(Fruit f:list){
// System.out.println(f.getIds()+f.getName()+f.getNumbers());
// } //delete
// Fruit f = session.get(Fruit.class, "s001");
// if(f!=null){
// session.beginTransaction();
// session.delete(f);
// session.getTransaction().commit();
// } //update
Fruit f = session.get(Fruit.class, "k007");
if(f!=null){
session.beginTransaction();
f.setName("香蕉大棒子");
f.setNumbers(200); session.update(f);
session.getTransaction().commit();
} session.close();
} }

声明:
这里的session不是web中的session.
web中的session代表的是客户端与web服务器之间的会话
这里的session指的是程序与数据库之前的会话,它是由hibernate进行管理的
hibernate框架的搭建与简单实现增删改的更多相关文章
- 初识hibernate框架之一:进行简单的增删改查操作
Hibernate的优势 l 优秀的Java 持久化层解决方案 (DAO) l 主流的对象—关系映射工具产品 l 简化了JDBC 繁琐的编码 l 将数据库的连接信息都存放在配置文件 l 自己的ORM ...
- 利用Hibernate 框架,实现对数据库的增删改查
增: package com.maya.test; import org.hibernate.*; import org.hibernate.cfg.*; import com.maya.model. ...
- IDEA+Maven 整合SSM框架实现简单的增删改查(新手入门,傻瓜操作)
原博客地址:https://blog.csdn.net/khxu666/article/details/79851070 选用SSM框架的原因在目前的企业级Java应用中,Spring框架是必须的.S ...
- springmvc+spring3+hibernate4框架简单整合,简单实现增删改查功能
转自:https://blog.csdn.net/thinkingcao/article/details/52472252 C 所用到的jar包 数据库表 数据库表就不用教大家了,一张表,很简 ...
- 【Hibernate】hibernate框架的搭建
1, Hibernate 是什么 Hibernate是java应用程序与数据库交互的开发的框架. Hibernate是一个开源,轻量级的ORM(对象关系映射)工具. 2,Hibernate框架的优点 ...
- BitAdminCore框架应用篇:(二)创建一个简单的增删改查模块
NET Core应用框架之BitAdminCore框架应用篇系列 框架演示:http://bit.bitdao.cn 框架源码:https://github.com/chenyinxin/cookie ...
- 用CI框架向数据库中实现简单的增删改查
以下代码基于CodeIgniter_2.1.3版 用PHP向数据库中实现简单的增删改查(纯代码)请戳 http://www.cnblogs.com/corvoh/p/4641476.html Code ...
- MyBatis学习--简单的增删改查
jdbc程序 在学习MyBatis的时候先简单了解下JDBC编程的方式,我们以一个简单的查询为例,使用JDBC编程,如下: Public static void main(String[] args) ...
- salesforce 零基础学习(五十一)使用 Salesforce.com SOAP API 实现用户登录以及简单的增删改查(JAVA访问salesforce)
此篇请参看:https://resources.docs.salesforce.com/202/latest/en-us/sfdc/pdf/salesforce_developer_environme ...
随机推荐
- 洛谷 P2966 [USACO09DEC]牛收费路径Cow Toll Paths
题目描述 Like everyone else, FJ is always thinking up ways to increase his revenue. To this end, he has ...
- 【UML】状态图Statechart diagram(转)
前言 UML由动态图和静态图组成,状态图就是属于动态图中较为重要的一张图. 定义 用来描述一个特定对象的所有可能状态以及由于各种事件的发生而引起的状态之间的转移. 目的 ...
- Android(java)学习笔记118:BroadcastReceiver之 外拨电话的广播接收者
1. 外拨电话的广播接收者: 首先我们示例工程一览表如下: (2)首先我们还是买一个收音机,定义一个OutCallReceiver继承自BroadcastReceiver,onReceive()方法中 ...
- Dojo的on函数(以前的dojo.connect)
同jQuery的on函数: require(["esri/map", "dojo/on"], function(Map, on) { // ... on(my ...
- C Library - <limits.h>
Introduction The limits.h header determines various properties of the various variable types. The ma ...
- USACO08FEB Hotel
题目传送门 线段树维护区间 线段树结构体 struct zzz{ int l,r,mi; //l为以左端点的为起点的最长子串 //r为以右端点为终点的最长子串 //mi是区间内部的最长子串 }tree ...
- Mysql常用运算符与函数汇总
Mysql常用运算符与函数汇总 本文给大家汇总介绍了mysql中的常用的运算符以及常用函数的用法及示例,非常的全面,有需要的小伙伴可以参考下 我们先把数据表建好 use test;create tab ...
- cocos2dx 3.x c++代码打包给lua调用过程(mac)
下载cocos2dx 框架,在应用程序->cocos->framework->cocos2d-x-3.x->tools->tolua目录下,一个ini文件对应一个py文件 ...
- React动态import()
React动态import() react-router@v4代码分离,推荐的import().这里分享webpack配置和使用方法. 首先安装两个必须的包 cnpm i react-loadable ...
- 一句话懂什么是JS闭包
无论何时声明新函数并将其赋值给变量,都要存储函数定义和闭包.闭包包含在函数创建时作用域中的所有变量,它类似于背包.函数定义附带一个小背包,它的包中存储了函数定义创建时作用域中的所有变量. 我将永远记住 ...