跨向Hibernate(一)

Hibernate旅程(一)Hibernate架构概述 Hibernate引出 曾学过三层架构,三层分别为界面层、业务逻辑层、数据持久层。在javaweb中,界面层和业务逻辑层可以使用struts框架来封装一些常用的操作。而在我们的数据持久层中,对数据库的增删改查,我们经常要手动的控制事务,各种sql语句查询,各种参数传递,无论是对哪个表操作使用的均是同一种思路进行操作的。既然是同一种思路,那就是重复的东西了。而且我们还要和关系型数据库打交道,而不单 阅读详情
从读Hibernate的手册开始了学习Hibernate的历程。
《与猫同乐》----乐的有些尴尬,因为在99%时,测试用了普通Java类,长时间滞留不前,把我的猫忘在门外了
 
1、配置数据源。
在Tomcat5中,修改conf/tomcat-users.xml文件,加入<user username="admin" password="admin" roles="admin"/>。启动Tomcat,进入管理页面,添加数据源,最终有如下信息加入项目的配置文件中:
  <Resource name="jdbc/quickstart" type="javax.sql.DataSource"/>
  <ResourceParams name="jdbc/quickstart">
    <parameter>
      <name>maxWait</name>
      <value>5000</value>
    </parameter>
    <parameter>
      <name>maxActive</name>
      <value>4</value>
    </parameter>
    <parameter>
      <name>password</name>
      <value>secret</value>
    </parameter>
    <parameter>
      <name>url</name>
      <value>jdbc:mysql://localhost/test</value>
    </parameter>
    <parameter>
      <name>driverClassName</name>
      <value>com.mysql.jdbc.Driver</value>
    </parameter>
    <parameter>
      <name>maxIdle</name>
      <value>2</value>
    </parameter>
    <parameter>
      <name>username</name>
      <value>quickstart</value>
    </parameter>
  </ResourceParams>
 
2、添加Hibernate库
把所需的库加入类路径中,或是项目Lib中
 
3、编写hibernate.cfg.xml文件,置于项目编译后的根目录下(在Eclipse或其他IDE中,放在源文件根目录下即可),内容类似下示:
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration
    PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"
    " http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd">
 
<hibernate-configuration>
 
    <session-factory>
 
        <property name="connection.datasource">java:comp/env/jdbc/quickstart</property>
        <property name="show_sql">false</property>
        <property name="dialect">net.sf.hibernate.dialect.PostgreSQLDialect</property>
 
        <!-- Mapping files -->
        <mapping resource="Cat.hbm.xml"/>
 
    </session-factory>
 
 
</hibernate-configuration>
 
4、编写相应的映射类和配置文件,并放在同一目录下,例如:
 
package net.sf.hibernate.examples.quickstart;
 
public class Cat {
 
    private String id;
    private String name;
    private char sex;
    private float weight;
 
    public Cat() {
    }
 
    public String getId() {
        return id;
    }
 
    private void setId(String id) {
        this.id = id;
    }
 
    public String getName() {
        return name;
    }
 
    public void setName(String name) {
        this.name = name;
    }
 
    public char getSex() {
        return sex;
    }
 
    public void setSex(char sex) {
        this.sex = sex;
    }
 
    public float getWeight() {
        return weight;
    }
 
    public void setWeight(float weight) {
        this.weight = weight;
    }
 
}
 
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping
    PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN"
    " http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">
 
<hibernate-mapping>
 
    <class name="net.sf.hibernate.examples.quickstart.Cat" table="CAT">
 
        <!-- A 32 hex character is our surrogate key. It's automatically
            generated by Hibernate with the UUID pattern. -->
        <id name="id" type="string" unsaved-value="null" >
            <column name="CAT_ID" sql-type="char(32)" not-null="true"/>
            <generator class="uuid.hex"/>
        </id>
 
        <!-- A cat has to have a name, but it shouldn' be too long. -->
        <property name="name">
            <column name="NAME" length="16" not-null="true"/>
        </property>
 
        <property name="sex"/>
 
        <property name="weight"/>
 
    </class>
 
</hibernate-mapping>

*5、编写自定义SessionFactory类,例如:(此为Hibernate自带的示例)
 
HibernateUtil.java
 
package net.sf.hibernate.examples.quickstart;
 
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
 
import net.sf.hibernate.HibernateException;
import net.sf.hibernate.Session;
import net.sf.hibernate.SessionFactory;
import net.sf.hibernate.cfg.Configuration;
 
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
 
public class HibernateUtil {
 
    private static Log log = LogFactory.getLog(HibernateUtil.class);
 
    private static final SessionFactory sessionFactory;
 
    static {
        try {
            // Create the SessionFactory
            sessionFactory = new Configuration().configure().buildSessionFactory();
        } catch (Throwable ex) {
            log.error("Initial SessionFactory creation failed.", ex);
            throw new ExceptionInInitializerError(ex);
        }
    }
 
    public static final ThreadLocal session = new ThreadLocal();
 
    public static Session currentSession() throws HibernateException {
        Session s = (Session) session.get();
        // Open a new Session, if this Thread has none yet
        if (s == null) {
            s = sessionFactory.openSession();
            session.set(s);
        }
        return s;
    }
 
    public static void closeSession() throws HibernateException {
        Session s = (Session) session.get();
        session.set(null);
        if (s != null)
            s.close();
    }
 
}
6、编写测试Jsp或Serverlet,注意,这里是在Tomcat环境下,不能用普通Java类,示例Jsp:
<%@ page contentType="text/html;charset=GBK"%>
<%@ page import="net.sf.hibernate.Session"%>
<%@ page import="net.sf.hibernate.HibernateException"%>
<%@ page import="net.sf.hibernate.Transaction"%>
<%@ page import="net.sf.hibernate.examples.quickstart.Cat"%>
<%@ page import="net.sf.hibernate.examples.quickstart.HibernateUtil"%>
<html>
<body>
<hr>
<%
          try{
         Session ssession;
            ssession = HibernateUtil.currentSession();
            Transaction tx= ssession.beginTransaction();
            Cat princess = new Cat();
            princess.setName("Princess");
            princess.setSex('F');
            princess.setWeight(7.4f);
 
            ssession.save(princess);
            tx.commit();
 
            HibernateUtil.closeSession();
            }catch(HibernateException e){
            }
           
%>
<hr>
</body>
</html>
AI 辅助编程全景:演进、提效场景与未来趋势 本文系统梳理了AI辅助编程的发展历程与应用场景。演进路径分为三代:从代码补全工具(2023)、对话式助手(2024)到自主编程代理(2025)。在软件全生命周期中,AI可显著提升各环节效率:需求分析阶段节省30-60%文档编写时间;设计阶段缩短40-60%技术调研周期;编码阶段通过智能补全提升55%任务速度;测试阶段减少30-60%测试编写时间。数据显示,2025年84%开发者使用AI工具,41%代码由AI生成,平均每周节省3.6小时。AI正推动开发者角色从编写者转变为审核者,但复杂业务逻辑和架构设计仍需人 阅读详情

相关推荐

用Python玩转Carla-Apollo联合仿真:手把手教你实现自动驾驶测试

本文详细介绍了如何使用Python实现Carla-Apollo联合仿真,从环境搭建到自动驾驶算法测试的全流程。通过Carla提供的高逼真仿真环境和Apollo的自动驾驶算法栈,开发者可以高效验证感知、规划和控制模块。文章包含环境配置、Python API操作、桥接实现及实战测试,为自动驾驶开发提供完整解决方案。

wasm7browser的博客 266

hibernate自动建表报错ERROR SchemaUpdate:212 - Unsuccessful: create table office_form (id bigint not null a

hibernate自动建表报错: 13:42:44,398 ERROR SchemaUpdate:212 - Unsuccessful: create table office_form (id bigint not null auto_increment, title varchar(255), primary key (id)) type=InnoDB 13:42:44,430 ERROR S...

qq_34665923的博客 740

Windows下Anaconda换清华镜像源最全指南(含常见问题解决)

本文提供了一份详尽的Windows系统下Anaconda配置清华镜像源的完整指南。针对网络下载缓慢的痛点,文章详细对比了命令行添加与直接编辑配置文件两种主流方法,并重点解决了配置过程中常见的文件缺失、安装失败、环境求解缓慢等疑难问题,帮助用户一劳永逸地提升包管理效率。

brandy的博客 337

tomcat启动后,hibernate报告update错误。。。。。

<br />平台启动后,<br />报出如下错误:<br />信息: Starting Servlet Engine: Apache Tomcat/6.0.14 22:16:42,281 INFO ProxoolFacade:86 - Proxool 0.9.1 (23-Aug-2008 11:10) 22:16:50,312 ERROR SchemaUpdate:155 - Unsuccessful: alter table T_RESOURCE add ACTIONCLASS nvarchar(

机场信息系统研究员的专栏 3963

【ROS】usb_cam相机标定

1. 唠叨两句 当我们要用相机做测量用途时,就需要做相机标定了,不然得到的计算结果会有很大误差,标定的内容包括三部分:内参,外参还有畸变参数。所以标定的过程就是要求得上面这些参数。 以前弄这个事估计挺麻烦,需要做实验和计算才能得到,现在通过ros的开源包几分钟就能完成相机标定,感激! 具体的内外参和畸变系数的说明,可以看看Reference里面的第一个链接,写得很详细。 2. 准备工作 要准备三样东西: usb_cam的ROS启动包 相机标定的ROS包 还有一个用于标定的棋盘格 1)usb_cam启动包

Will_Ye的博客 8201

Hive SQL零基础到精通:100道练习题+答案,SQL能力快速提升

我将以我15年架构与开发的经验,带领大家从零基础到精通,通过精心设计的100道练习题及其详解,系统地、深度地掌握Hive SQL的核心精髓。它可以将结构化的数据文件映射为一张数据库表,并提供了一套类SQL的查询语言——HiveQL(简称HQL),允许熟悉SQL的用户直接查询存储在HDFS上的海量数据。它将Job描绘为DAG(有向无环图),允许更灵活的任务编排,避免不必要的中间落盘,可以复用容器,从而大幅降低延迟。希望你以此文为起点,在广阔的大数据世界里继续遨游,成为一名真正的数据高手!

架构师的AI之路,分享AI应用开发架构的学习与实践。 797

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

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

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

STM32入门教程:无人机控制

我们将会一步一步引导您完成无人机的控制代码,包括无人机的姿态控制、飞行控制和通信控制等。第三步:配置无人机姿态控制 无人机的姿态控制是指控制无人机在空中的倾斜和转向。为了实现姿态控制,我们需要使用加速度计和陀螺仪传感器来获取无人机的姿态信息,并使用PID控制算法来控制无人机的姿态。在这一步骤中,您需要根据您使用的具体传感器和控制算法的要求进行更详细的配置和编码。在通信控制中,您需要考虑到通信的稳定性和可靠性。第五步:通信控制 无人机的通信控制是指与地面站或其他设备进行通信,传输飞行数据和接收飞行指令。

m0_75244442的博客 747

跨向Hibernate(二)

重新在Eclipse下再来过一遍,步骤有些不同。(eclipse+myEclipse)1、创建一个普通的Java项目2、加入用myeclipse导入Hibernate的包3、加入MySql的JDBC包(应该先在myeclipse中配置数据库的服务)4、创建一下数据POJO(忘了是不是这么叫,先这么写着吧)5、在项目根结点用右键,查看项目属性,在Myeclipse-hibernate中添加(标准)S

Ardor Leo's Blog 1347

站在评审的角度写国自然基金本子,搭配这5条AI提示词,帮你一键提升本子中标率

多数同仁的选题失败,不是因为你的idea不好,而是你的逻辑没有立起来,你必须让评审看到,你是怎么从问题走向方法的。请你按照“同行做到哪、瓶颈卡在哪、我该怎么破”的逻辑,将我的创新点进行重构:【粘贴你原始的创新点描述】,要求:表达需结构化、可量化、可验证,突出对比后的实质性突破。与其等着评审指出问题,等着本子被拒,不如让AI提前模拟评审,帮你从可行性、创新性、国家价值、团队能力四个维度给你打分,并指出项目的致命破绽,提示词这样设计。创新点如果写不好,本子往往也会被拒,而评审一般喜欢的创新点都是有固定结构的。

智能AI让学术科研更容易 1238

自动权重化图卷积网络(Auto-Weighted GCN)算法在反洗钱识别中的应用及代码实现

该算法通过自动学习节点之间的权重信息,能够更好地捕捉AML数据中的关系和结构,从而提高反洗钱识别的准确性和效果。传统的AML识别方法通常依赖于专家定义的规则和手动提取的特征,但这些方法在应对大规模和复杂的数据时存在一定的局限性。GCN通过在图上执行卷积操作来捕捉节点之间的关系和结构信息,从而实现对图数据的学习和表示。自动权重化图卷积网络是一种基于GCN的改进算法,能够自动学习节点之间的权重信息,从而更好地捕捉图中的关系。利用自动计算的权重值执行图卷积操作。根据节点之间的相似度,计算每个节点的权重。

syntax_api860的博客 376

hibernate总结(一)

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

Gray_humor的博客 402

17 指挥AI写Mamba相关模型代码,快速适配大模型场景

本文为《30天掌控AI编程:从指令到落地,手把手教你指挥AI写代码》系列第十七篇,属于第三阶段多场景实战核心内容。本篇聚焦当下大模型领域热门的**Mamba架构**,针对零基础大模型开发、无深度学习基础的使用者,拆解指挥AI生成Mamba基础模型、微调适配、推理部署代码的核心方法,覆盖Mamba基础模块搭建、简易序列建模、小样本微调、本地推理等高频场景,提供可直接复用的高质量指令模板、完整可运行代码、环境配置与避坑指南,无需精通Transformer、状态空间模型等底层原理,轻松上手Mamba大模型开发。

coreopt的博客 61

【Hibernate】一、Hibernate框架介绍及入门程序示例

Hibernate框架简介 Hibernate是对JDBC的进一步封装。它的一个主要出发点就是希望简化Java对象持久化的编程。因为直接使用JDBC时需要程序员编写大量繁杂的代码。 Hibernate是一个开源的ORM(对象-关系映射)框架,它的作用就是在POJO(普通JAVA对象)和关系型数据库之间做一个映射,把关系型数据库的字段与内存中java对象的属性做映射。这样,程序员在操作数据库的时

不积跬步,无以至千里 3162

Devexpress16.2.6破解工具

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

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Hibernate 一

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

what_where的博客 437

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

UFS Hibernate介绍--代码部分

一 . UFS Hibernate简介

guozhidixian的博客 3855

Hibernate (一)

文章目录一:配置Hibernate(1)先创建数据库表(2)创建一个hibernate工程:(3)导入hibernate所依赖的jar包(4)创建实体:product_(5) 配置 Product.hbm.xml(6)配置 hibernate.cfg.xml(7)创建 测试类 TestHibernate(10)原理二:对象状态(1)Session(2)Session 对象的三种状态三、通过获取I...

Roe_D的博客 881

Hibernate实践(一)

Hibernate是一个开源的O/R mappimg的框架,基于JDBC提供了一种持久性数据管理的方案,相对于EntityBean来说是相当轻量级的。由于Hibernate是基于JDBC的,所以它的数据库查寻的能力相对于CMP来说也是异常强大的,Hibernate自身也提供了HQL查寻语句。一个最简单的Hibernate project(不涉及Struts, Tomcat, XDoclet,J

lemonlei的专栏 2997

hibernate进阶(一)—ORM、JPA、Hibernate

一、ORM  起源     如今面向对象编程已经称为企业级开发中主流开发方法,而关系型数据库也也成为企业应用环境中永久存数据的主流存储系统。面向对象是从软件工程基本原则(如耦合、聚合、封装)基础上发展而来,而关系型数据库是从数学理论发展而来。那怎样将编程中的对象存储在关系型数据库呢?

遇见更好的自己 1359

JAVA框架 / HIBERNATE / HIBERNATE系列教材 (一)- 基础 - HIBERNATE 基于实例的入门教程

JAVA 框架 / HIBERNATE / HIBERNATE系列教材 (一)- 基础 - HIBERNATE 基于实例的入门教程 #原文链接在这里 使用JDBC做数据库相关功能开发会做很多重复性的工作,比如创建连接,关闭连接,把字段逐一映射到属性中。 Hibernate把这一切都封装起来了,使得数据库访问变得轻松而简单,代码也更加容易维护。 第一次使用Hibernate会有一个比较多步骤的配置过...

weixin_44092440的博客 324

Hibernate学习笔记(一)——简单的Hibernate实例入门

一、Hibernate简介 Hibernate是一个开源的对象/关系映射(ORM)框架,它对JDBC进行了轻量级的封装。所谓ORM就是Object/Relationship Mapping,为什么要使用对象/关系映射呢?因为使用面向对象思想编写的数据库应用程序都是要把信息存储到关系型数据库中的,使用Hibernate就可以使用面向对象的方法来操作和使用数据库了。 二、Hibernate简单实例

记录只为更好地前行 5467

Hibernate(一)——入门

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

jc_hook的博客 1267
上一篇: 跨向Hibernate(二)
下一篇: SlickEdit,好工具!!
ardorleo
博客等级 码龄23年 2粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值