hibernate(一)

Hibernate旅程(一)Hibernate架构概述 Hibernate引出 曾学过三层架构,三层分别为界面层、业务逻辑层、数据持久层。在javaweb中,界面层和业务逻辑层可以使用struts框架来封装一些常用的操作。而在我们的数据持久层中,对数据库的增删改查,我们经常要手动的控制事务,各种sql语句查询,各种参数传递,无论是对哪个表操作使用的均是同一种思路进行操作的。既然是同一种思路,那就是重复的东西了。而且我们还要和关系型数据库打交道,而不单 阅读详情

1、hibernate简介
好处:操作数据库的时候,可以以面向对象的方式来完成.不需要书写SQL语句。

下载地址

https://sourceforge.net/projects/hibernate/files/hibernate-orm/5.0.7.Final/

2、配置文件

2.1、orm元数据
Customer.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">
<!-- 配置表与实体对象的关系 -->

<!-- package属性:填写一个包名.在元素内部凡是需要书写完整类名的属性,可以直接写简答类名了. -->
<hibernate-mapping package="cn.jiangtea.domain" >
<!-- 
    class元素: 配置实体与表的对应关系的
    name: 完整类名
    table:数据库表名
 -->
    <class name="Customer" table="cst_customer" >
        <!-- id元素:配置主键映射的属性
            name: 填写主键对应属性名
            column(可选): 填写表中的主键列名.默认值:列名会默认使用属性名
            type(可选):填写列(属性)的类型.hibernate会自动检测实体的属性类型.
                    每个类型有三种填法: java类型|hibernate类型|数据库类型
            not-null(可选):配置该属性(列)是否不能为空. 默认值:false
            length(可选):配置数据库中列的长度. 默认值:使用数据库类型的最大长度
         -->
        <id name="cust_id"  >
            <!-- generator:主键生成策略 -->
            <generator class="native"></generator>
        </id>
        <!-- property元素:除id之外的普通属性映射
            name: 填写属性名
            column(可选): 填写列名
            type(可选):填写列(属性)的类型.hibernate会自动检测实体的属性类型.
                    每个类型有三种填法: java类型|hibernate类型|数据库类型
            not-null(可选):配置该属性(列)是否不能为空. 默认值:false
            length(可选):配置数据库中列的长度. 默认值:使用数据库类型的最大长度
         -->
        <property name="cust_name" column="cust_name" >
            <!--  <column name="cust_name" sql-type="varchar" ></column> -->
        </property>
        <property name="cust_source" column="cust_source" ></property>
        <property name="cust_industry" column="cust_industry" ></property>
        <property name="cust_level" column="cust_level" ></property>
        <property name="cust_linkman" column="cust_linkman" ></property>
        <property name="cust_phone" column="cust_phone" ></property>
        <property name="cust_mobile" column="cust_mobile" ></property>
    </class>
</hibernate-mapping>

2.2、hibernate主配置

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>
        <!-- 
        #hibernate.dialect org.hibernate.dialect.MySQLDialect
        #hibernate.dialect org.hibernate.dialect.MySQLInnoDBDialect
        #hibernate.dialect org.hibernate.dialect.MySQLMyISAMDialect
        #hibernate.connection.driver_class com.mysql.jdbc.Driver
        #hibernate.connection.url jdbc:mysql:///test
        #hibernate.connection.username gavin
        #hibernate.connection.password
         -->
         <!-- 数据库驱动 -->
        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
         <!-- 数据库url -->
        <property name="hibernate.connection.url">jdbc:mysql:///hibernate</property>
         <!-- 数据库连接用户名 -->
        <property name="hibernate.connection.username">jiangtea</property>
         <!-- 数据库连接密码 -->
        <property name="hibernate.connection.password">******</property>
        <!-- 数据库方言
            不同的数据库中,sql语法略有区别. 指定方言可以让hibernate框架在生成sql语句时.针对数据库的方言生成.
            sql99标准: DDL 定义语言  库表的增删改查
                      DCL 控制语言  事务 权限
                      DML 操纵语言  增删改查
            注意: MYSQL在选择方言时,请选择最短的方言.
         -->
        <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>


        <!-- #hibernate.show_sql true 
             #hibernate.format_sql true
        -->
        <!-- 将hibernate生成的sql语句打印到控制台 -->
        <property name="hibernate.show_sql">true</property>
        <!-- 将hibernate生成的sql语句格式化(语法缩进) -->
        <property name="hibernate.format_sql">true</property>
        <!-- 
        ## auto schema export  自动导出表结构. 自动建表
        #hibernate.hbm2ddl.auto create      自动建表.每次框架运行都会创建新的表.以前表将会被覆盖,表数据会丢失.(开发环境中测试使用)
        #hibernate.hbm2ddl.auto create-drop 自动建表.每次框架运行结束都会将所有表删除.(开发环境中测试使用)
        #hibernate.hbm2ddl.auto update(推荐使用) 自动生成表.如果已经存在不会再生成.如果表有变动.自动更新表(不会删除任何数据).
        #hibernate.hbm2ddl.auto validate    校验.不自动生成表.每次启动会校验数据库中表是否正确.校验失败.
         -->
        <property name="hibernate.hbm2ddl.auto">update</property>


        <!-- 引入orm元数据
            路径书写: 填写src下的路径
         -->
        <mapping resource="cn/jiangtea/domain/Customer.hbm.xml" />
    </session-factory>
</hibernate-configuration>

3、hibernate的API详解

3.1、configuration对象

Configuration功能: 配置加载类.用于加载主配置,orm元数据加载

public class Demo {
    @Test
    public void fun1(){
        //1 创建,调用空参构造
        Configuration conf = new Configuration();
        //2 读取指定主配置文件 => 空参加载方法,加载src下的hibernate.cfg.xml文件
        conf.configure();
        //3 读取指定orm元数据(扩展),如果主配置中已经引入映射配置.不需要手动加载
        //conf.addResource(resourceName);
        //conf.addClass(persistentClass);
        //4 根据配置信息,创建 SessionFactory对象
        SessionFactory sf = conf.buildSessionFactory();
    }
}

3.2、sessionFactory对象

SessionFactory功能: 用于创建操作数据库核心对象session对象的工厂.;
简单说功能就一个:创建session对象;

注意:
1.sessionfactory:负责保存和使用所有配置信息.消耗内存资源非常大.
2.sessionFactory:属于线程安全的对象设计.

结论: 保证在web项目中,只创建一个sessionFactory.

public class Demo2 {
    @Test
    public void fun1(){
        //1 创建,调用空参构造
        Configuration conf = new Configuration();
        //2 读取指定主配置文件 => 空参加载方法,加载src下的hibernate.cfg.xml文件
        conf.configure();
        //3 读取指定orm元数据(扩展),如果主配置中已经引入映射配置.不需要手动加载
        //conf.addResource(resourceName);
        //conf.addClass(persistentClass);
        //4 根据配置信息,创建 SessionFactory对象
        SessionFactory sf = conf.buildSessionFactory();
        //5 获得session
        //打开一个新的session对象
        sf.openSession();
        //获得一个与线程绑定的session对象
        sf.getCurrentSession();
    }
}

3.3、session&transaction对象

session对象功能: 表达hibernate框架与数据库之间的连接(会话).session类似于JDBC年代的connection对象. 还可以完成对数据库中数据的增删改查操作.session是hibernate操作数据库的核心对象

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.junit.Test;

public class Demo3 {

    @Test
    //事务操作
    public void fun1(){
        //1 创建,调用空参构造
        Configuration conf = new Configuration().configure();
        //2 根据配置信息,创建 SessionFactory对象
        SessionFactory sf = conf.buildSessionFactory();
        //3 获得session
        Session session = sf.openSession();
        //4 session获得操作事务的Transaction对象
        //获得操作事务的tx对象
        //Transaction tx = session.getTransaction();
        //开启事务并获得操作事务的tx对象(建议使用)
        Transaction tx2 = session.beginTransaction();
        tx2.commit();//提交事务
        tx2.rollback();//回滚事务
        session.close();//释放资源
        sf.close();//释放资源
    }

    @Test
    //session的新增
    public void fun2(){
        //1 创建,调用空参构造
        Configuration conf = new Configuration().configure();
        //2 根据配置信息,创建 SessionFactory对象
        SessionFactory sf = conf.buildSessionFactory();
        //3 获得session
        Session session = sf.openSession();
        //4 session获得操作事务的Transaction对象
        //获得操作事务的tx对象
        //Transaction tx = session.getTransaction();
        //开启事务并获得操作事务的tx对象(建议使用)
        Transaction tx2 = session.beginTransaction();
        Customer c = new Customer();
        c.setCust_name("张撒按");
        session.save(c);
        tx2.commit();//提交事务
        session.close();//释放资源
        sf.close();//释放资源
    }
    @Test
    //session的查询
    //查询id为1的customer对象
    public void fun3(){
        //1 创建,调用空参构造
        Configuration conf = new Configuration().configure();
        //2 根据配置信息,创建 SessionFactory对象
        SessionFactory sf = conf.buildSessionFactory();
        //3 获得session
        Session session = sf.openSession();
        //4 session获得操作事务的Transaction对象
        //获得操作事务的tx对象
        //Transaction tx = session.getTransaction();
        //开启事务并获得操作事务的tx对象(建议使用)
        Transaction tx2 = session.beginTransaction();
        Customer customer = session.get(Customer.class, 1l);
        System.out.println(customer);
        tx2.commit();//提交事务
        session.close();//释放资源
        sf.close();//释放资源
    }
    @Test
    //session的修改
    //修改id为1的customer对象的name属性为程序员
    public void fun4(){
        //1 创建,调用空参构造
        Configuration conf = new Configuration().configure();
        //2 根据配置信息,创建 SessionFactory对象
        SessionFactory sf = conf.buildSessionFactory();
        //3 获得session
        Session session = sf.openSession();
        //4 session获得操作事务的Transaction对象
        //获得操作事务的tx对象
        //Transaction tx = session.getTransaction();
        //开启事务并获得操作事务的tx对象(建议使用)
        Transaction tx2 = session.beginTransaction();

        //1 获得要修改的对象
        Customer c = session.get(Customer.class, 1l);
        //2 修改
        c.setCust_name("程序员");
        //3 执行update
        session.update(c);
        tx2.commit();//提交事务
        session.close();//释放资源
        sf.close();//释放资源
    }
    @Test
    //session的删除
    //删除id为1的customer对象
    public void fun5(){
        //1 创建,调用空参构造
        Configuration conf = new Configuration().configure();
        //2 根据配置信息,创建 SessionFactory对象
        SessionFactory sf = conf.buildSessionFactory();
        //3 获得session
        Session session = sf.openSession();
        //4 session获得操作事务的Transaction对象
        //获得操作事务的tx对象
        Transaction tx = session.getTransaction();
        tx.begin();
        //开启事务并获得操作事务的tx对象(建议使用)
        Transaction tx2 = session.beginTransaction();
        //1 获得要修改的对象
        Customer c = session.get(Customer.class, 1l);
        //2 调用delete删除对象
        session.delete(c);
        tx2.commit();//提交事务
        session.close();//释放资源
        sf.close();//释放资源
    }
}

4、封装工具类

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
public class HibernateUtils {
    private static SessionFactory sf;
    static{
        //1 创建,调用空参构造
        Configuration conf = new Configuration().configure();
        //2 根据配置信息,创建 SessionFactory对象
         sf = conf.buildSessionFactory();
    }
    //获得session => 获得全新session
    public static Session openSession(){
                //3 获得session
                Session session = sf.openSession();
                return session;
    }
    //获得session => 获得与线程绑定的session
    public static Session getCurrentSession(){
        //3 获得session
        Session session = sf.getCurrentSession();
        return session;
    }
    public static void main(String[] args) {
        System.out.println(HibernateUtils.openSession());
    }
}

5、CRM练习
导入jar包:
这里写图片描述

导入驱动:
这里写图片描述

导入JSTL:
这里写图片描述

commons:
这里写图片描述

import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.beanutils.BeanUtils;
import com.jiangtea.domain.Customer;
import com.jiangtea.service.CustomerService;
import com.jiangtea.service.impl.CustomerServiceImpl;

public class AddCustomerServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
    private CustomerService customerService  = new CustomerServiceImpl();
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //1 获得参数并封装到Customer对象
        Customer c = new Customer();
        try {
            BeanUtils.populate(c, request.getParameterMap());
        } catch (Exception e) {
            e.printStackTrace();
        }
        //2 调用Service保存客户
        customerService.save(c);
        //3 重定向到客户列表
        response.sendRedirect(request.getContextPath()+"/ListCustomerServlet");
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }
}
import com.jiangtea.domain.Customer;
public interface CustomerService {
    //保存客户
    void save(Customer c);
}
import com.jiangtea.dao.CustomerDao;
import com.jiangtea.dao.impl.CustomerDaoImpl;
import com.jiangtea.domain.Customer;
import com.jiangtea.service.CustomerService;

public class CustomerServiceImpl implements CustomerService {
    private CustomerDao customerDao = new CustomerDaoImpl();
    public void save(Customer c) {
        //调用Dao保存客户
        customerDao .save(c);
    }
}
import com.jiangtea.domain.Customer;
public interface CustomerDao {
    //保存客户
    void save(Customer c);
}
import org.hibernate.Session;
import org.hibernate.Transaction;
import com.jiangtea.dao.CustomerDao;
import com.jiangtea.domain.Customer;
import com.jiangtea.utils.HibernateUtils;

public class CustomerDaoImpl implements CustomerDao {
    public void save(Customer c) {
        //1 获得session
        Session session = HibernateUtils.openSession();
        //2 打开事务
        Transaction tx = session.beginTransaction();
        //3 执行保存
        session.save(c);
        //4 提交事务
        tx.commit();
        //5 关闭资源
        session.close();    
    }
}
【JavaSE】之流程控制与方法 Java基础之Java流程控制与方法相关知识介绍~ 阅读详情

相关推荐

国产FPGA开发实战:紫光同创编程软件中的约束文件详解与常见问题

本文详细解析了紫光同创FPGA编程软件中约束文件的关键配置技巧与常见问题。通过基础架构解析、时钟约束实践、物理约束调控及典型问题排查指南,帮助开发者高效掌握国产FPGA开发中的约束文件应用,提升开发效率与设计稳定性。

gin88的博客 909

### Hibernate中的事务与并发 ###

**事务相关的概念** 1. 什么是事务 * 事务就是逻辑上的一组操作,组成事务的各个执行单元,操作要么全都成功,要么全都失败. * 转账的例子:冠希给美美转钱,扣钱,加钱。两个操作组成了一个事情! 2. 事务的特性 * 原子性 -- 事务不可分割. * 一致性 -- 事务执行的前后数据的完整性保持一致. * 隔离性 -- 一个事务执行的过程中,不应该受到其他的事务的干扰. * 持...

weixin_30361641的博客 166

射频电路设计——射频器件基础

本文仅供自己复习使用,请勿转载! 射频电路制作方法 MCM工艺 CMOS工艺 趋肤效应、深度 频率越高趋肤效应越明显 高频器件 高频电阻 绕线的比贴片的多一个电感,是因为绕线的因为是线绕制的,只有有线就会有电感,所以绕线电阻等效模型会比贴片的多一个电感 多晶硅电阻模型 深线性区MOS电阻 高频电阻的频率响应 记忆的话就后面的频率特性有点像电容的 高频电容 作用 单层贴片式电容 多层贴片式电容 MIM电容 MOM电容 由于是并联的,所以总的电容值是单个的直接相加 PN结电容 M.

输出每日所学,供大家学习使用 7150

spring事物控制--HibernateTransactionManager

1. 事物管理器 Spring并不直接管理事务,而是提供了多种事务管理器,他们将事务管理的职责委托给Hibernate或者JTA等持久化机制所提供的相关平台框架的事务来实现。 Spring事务管理器的接口是org.springframework.transaction.PlatformTransactionManager,通过这个接口,Spring为各个平台如JDBC、Hibernate等

baidu_28283827的博客 9845

Hyper-V显卡直通实战:手把手解决Windows 11虚拟机错误码43(附完整参数配置)

本文详细解析了在Windows 11 Hyper-V虚拟机中配置显卡直通时遭遇错误码43的根源,并提供了从环境检查、核心PowerShell命令(如Set-VMGpuPartitionAdapter)配置到虚拟机内驱动替换的完整实战解决方案,帮助用户彻底解决显卡驱动无法加载的问题。

weixin_29238147的博客 899

Aurix TC387 Ethernet代码解析之二_移植

英飞凌官方仅提供了TC397的例程,故需通过TC397例程来移植到TC387新建工程里。TC397官方例程名称【Ethernet_1_KIT_TC397_TFT】,网络上可以免费获取到,此处不赘述。使用工具【

m0_69929716的博客 884

hibernate总结(一)

Hibrenate概述 Hibernate框架是当今主流的Java持久层框架之一,由于它具有简单易学、灵活性强、扩展性强等特点,能够大大地简化程序的代码量,提高工作效率,因此受到广大开发人员的喜爱。 Hibernate是一个开放源代码的ORM框架,它对JDBC进行了轻量级的对象封装,使得Java开发人员可以使用面向对象的编程思想来操作数据库。 ORM概述 Object Rela...

Gray_humor的博客 402

实战篇| app爬虫不用真机

之前写过一篇基于真机app爬虫《App爬虫实战篇-以华为真机手机爬取集换社的app为例》,如果大家有用真机爬虫的经历,会深刻认识到真的不方便,一是自己的手机,经常会被电话、微信等打断,二是闲置手机,面对小批量数据还能勉强,大批量爬虫,会导致成本指数级上升,并且控制起来相对麻烦。以下就是常见的模拟器。emulator -avd my_avd -no-snapshot-save # 启动时不保存 snapshot。emulator -avd my_avd -wipe-data # 清除数据(恢复到出厂)

youbingchen的博客 597

在单元测试hibernate的一对多多对一映射遇到异常

在单元测试hibernate的一对多多对一映射遇到异常

xuyuning0212的专栏 516

无迹卡尔曼滤波 (UKF, Unscented Kalman Filter) 算法详解及案例分析

无迹卡尔曼滤波是一种用于估计非线性系统状态的递归算法。其目标是通过结合系统模型和观测数据,估计系统的最优状态。

闲人编程的博客 2629

基于YOLO26深度学习框架的智能停车场管理系统的算法研究实现方法

本文研究了基于YOLO26深度学习框架的智能停车场管理系统实现方法。系统采用CSPDarknet53作为主干网络,结合特征金字塔和注意力机制提升检测性能。通过数据预处理、模型训练和停车分析三个主要模块,实现了车位占用检测、车辆类型识别等功能。实验结果表明,该方法在检测精度和速度方面表现优异,为智能停车场管理提供了有效的技术解决方案。

一键难忘的博客 571

Hibernate(一)

1.       hibernate简介Hibernate是一种功能强大,执行性高的面向对象的持久化技术。Hibernate可以使你很容易的以面向对象的方式来开发持久化类,包括联合,继承,多态,组合和集合。Hibernate允许你像使用本地SQL语句或面向对象的标准和示例API一样轻松的使用其自带的SQL表达式(HSQL).并不像许多其他持久化解决方案一样,Hibernate 并不屏弃你已

697

sec_uid

webcast_uid转sec_uid,webcast_uid转uid,webcast_uid转dy号

m0_56967679的博客 4421

Hibernate 双向单对一关系

SUNZONE的专栏 136

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

hibernate 一

一、hibernate数据持久化组件 对象持久化,把数据保存在永久的存储介质中(数据库) OR/M(object relation mapping)对象关系映射。 POJO类,就是标准的Java Bean。 Hibernate就是一个可以自动的根据xml完成对象关系映射,并持久化到数据库的开源组件。 Hibernate的底层也是有JDBC实现的。 hibernate是通过xml文件...

persistC的专栏 145

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Hibernate框架【一】——HIbernate框架介绍

Hibernate是一个开源的Java对象关系映射(ORM)框架,它提供了一种方便的方式将Java对象与关系型数据库进行映射和交互。通过Hibernate,开发人员可以使用面向对象的方式操作数据库,而不需要直接编写SQL查询语句。

理想主义的花最终会盛开在浪漫主义的土壤里,我的热情永远不会熄灭在现实的平凡之中,我们终将上岸,阳光万里。 1万+

从无到有学习Hibernate一

初步认识Hibernate 1Hibernate是一个基于Java语言的开源的持久化中间价,它对JDBC作了轻量级封装。 2Hibernate有什么作用?   Hibernate不仅提供了ORM(对象关系映射,一种将Java对象持久化到关系数据库的技术)映射,同时数据查询和数据缓存功能,Java开发人员可以利用Hibernate的API来操纵数据库。 3既然有了JDBC,为什么还要Hibernat...

damoqingquan的专栏 175

Hibernate(一)——入门

在之前经常用到操作数据库的框架是Mybatis或者Mybatis-plus。Hibernate在項目中用过,但没有深入的了解过,所以这次趁着假期把这个框架了解一下。

jc_hook的博客 1267

Hibernate 一

Hibernate 一Hibernate简介为什么使用Hibernatecrud实例导入bom.xml依赖配置文件 hibernate.cfg.xml实体类实体类对应的配置文件增删查改Hibernate的缺陷 Hibernate简介 1、ORM框架/持久层框架 jdbc的一个框架 3、通过管理对象来改变数据库中的数据 4、通过管理对象来操作数据库 5、跨数据库的无缝移植(就是可以直接换数据库比如原...

what_where的博客 437

hibernate的继承关系映射(一)

以汽车对象为例 创建一个bas

度窝-笔记 762

SSH之hibernate(一)

SSH之hibernate(一)hibernate是个开源轻量级框架,它对数据库的操作主要应用了orm思想 object relation mapping : 对象关系映射 让实体类和数据库表一一对应,让实体类属性和表字段一一对应(配置文件中实现) 配置完后hibernate可自动根据你的配置信息建好相应的表,无需你手动创建 hibernate环境搭建 第一步: 导入hibernate的j

没有对象也没有new方法的大白 230

【Java】Hibernate(一)概述

【前言】       之前在浅析SSH框架的时候简单总结过一些Hibernate的知识,再次学习到Hibernate有熟悉的感觉。       Hibernate 是一个开源的对象关系映射框架,是面向Java环境的对象/关系数据库映射工具,对象/关系映射Object/relational mapping (ORM),就是把对象模型表示的对象映射到,基于SQL的关系模型数据结构中去。它对JDBC

王璐 664

hibernate一

layout: post title: hibernate subtitle: 用法 date: 2018-05-08 author: ZL header-img: img/20180508.jpg catalog: true tags: - hibernate 介绍 hibernate是一个关于数据库的框架。 好处 完全面向对...

buglei123的博客 121

Hibernate一

先安装插件 去官网 很简单 先是导入jar包 简单的导入hibernate的lib\required中的包然后对类进行与表的绑定创建一个.hbm.xml 一:orm Object Relational Mapping 对象关系映射<hibernate-mapping package="crm.domain"> <class name="Customer" table="cst_cus

神奇的代码---AVOP-137 665

Hibernate【一】

文章目录1.什么是hibernate2.有什么优势3.如何在项目中添加hibernate支持4.查询演示5.增加演示6.修改7.删除 1.什么是hibernate 1.ORM框架/持久层框架 jdbc的一个框架 2.Hibernate 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了非常轻量级的对象封装,它将 pojo 与数据库表建立映射关系,是一个全自动的 ORM(Object - R...

Zhangrunhong的博客 258

【SSH进阶之路】【一】Hibernate基本原理

在开始学hibernate之前,一直就有人说:Hibernate并不难,无非是对JDBC进一步封装。一句不难,难道是真的不难还是眼高手低? 如果只是停留在使用的层面上,我相信什么技术都不难,看看别人怎么做的,你也可以很快上手。 这难道是学习的最终目的吗? 不是,绝对不是。我们需要了解这门技术的基本概念,它到底是什么,它是干什么的,它有什么优缺点。下面我就带领

帅胖子的博客 662
上一篇: 基础小结
下一篇: 安卓第三方支付之支付宝支付
jiangtea
博客等级 码龄10年 33粉丝 115原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值