hibernate访问postgreSQL的搭建过程

PostGreSQL 结合 Hibernate 在项目中的使用小结 我本人是从事J2EE开发的,一提到J2EE开发,估计大家第一想到的就是SSH三层架构,当然现在已经不一定是这样的了,也有SSI,也有SpringMVC框架等等,其中ORM这个技术在开发中是肯定会用到的,毕竟是一种里程碑的技术,这里只介绍下Hibernate与PostGreSQL的结合使用。一、驱动包下载这里使用过Hibernate的人应该都知道,和数据库结合使用必须下载指定数据库的数据库驱动jar包 阅读详情

1. postgreSQL的安装:

安装包下载:https://www.postgresql.org/download/ 官网下载postgresql-9.1.3-1-windows.exe(46M);

傻瓜式安装,跟着安装引导走,一路next,用户名默认为 postgres,密码*,端口默认5432

启动服务,打开services.msc,如果postgre没有启动则手动启动;

2. postgreSQL客户端的工具的安装

1 Navicat Premium 12 和pgAdmin 4;

navicat,去官网下载https://www.navicat.com/download

pgAdmin 4,去官网下载https://www.pgadmin.org/download/

2 安装

3 双击连接->填写用户名,密码,端口,连接名,创建连接

4 右键点击连接名称,创建数据库

5 创建模式,(postgre的数据结构多了一层模式的结构,数据库>模式>表>字段),数据库创建时有默认的模式为public,右键数据库名,创建模式myschema
6 创建表,右键表,创建表,填写字段(user_id,username,password);

3. 搭建hibernate环境:

1 用eclipse新建javaWeb项目
2 引入jar包:
  hibernate jar包 在pom.xml写依赖:
  

        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>4.3.5.Final</version>
        </dependency>

        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-validator</artifactId>
            <version>5.0.1.Final</version>
        </dependency>
        <!-- postgresql依赖包 -->
        <dependency>
            <groupId>org.postgresql</groupId>
            <artifactId>postgresql</artifactId>
            <version>9.4-1201-jdbc41</version>
        </dependency>

3 配置hibernate配置文件.
项目由maven管理,在resources目录下加入hibernate.cfg.xml文件,该配置文件主要记录了数据库的有户名,ip,密码,端口,所用jdbc驱动等信息内容如下:

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "src/resource/schema/hibernate-configuration-3.0.dtd">

<hibernate-configuration>

    <session-factory>
        <!-- Database connection settings -->
        <property name="connection.driver_class">org.postgresql.Driver</property>
        <property name="connection.url">
            jdbc:postgresql://10.21.132.19:5432/mydatabase
        </property>
        <property name="connection.username">chen</property>
        <property name="connection.password">root123</property>

        <!-- JDBC connection pool (use the built-in) -->
        <!-- <property name="connection.pool_size">1</property> -->
        <property name="c3p0.driver_class">org.postgresql.Driver</property>
        <property name="hibernate.c3p0.acquire_increment">1</property>
        <property name="hibernate.c3p0.validate">true</property>
        <property name="hibernate.c3p0.idle_test_period">20</property> <!-- seconds -->
        <property name="hibernate.c3p0.max_size">5</property>
        <property name="hibernate.c3p0.max_statements">100</property>
        <property name="hibernate.c3p0.min_size">2</property>
        <property name="hibernate.c3p0.timeout">90</property> <!-- seconds -->

        <!-- SQL dialect -->
        <property name="hibernate.dialect">
            org.hibernate.spatial.dialect.postgis.PostgisDialect
        </property>
        <property name="dialect">
            org.hibernate.dialect.PostgreSQLDialect
        </property>

        <!-- Enable Hibernate's automatic session context management -->
        <property name="current_session_context_class">thread</property>

        <!-- Disable the second-level cache  -->
        <property name="cache.provider_class">
            org.hibernate.cache.internal.NoCacheProvider
        </property>

        <!-- Echo all executed SQL to stdout -->
        <property name="show_sql">false</property>

        <!-- Drop and re-create the database schema on startup -->
        <!-- <property name="hbm2ddl.auto">update</property> -->

        <!-- <mapping resource="com/hik/gss/sys/domain/User.hbm.xml" />-->

        <mapping class="cn.sibat.template.model.User"></mapping>
    </session-factory>

</hibernate-configuration>

4 hibernate的实体类映射。

1 hibernate的操作有两种1.xml文件配置2.注解,这里用的是注解法,图个方便.
实体类的定义,如下:

package cn.sibat.template.model;

import javax.persistence.*;

@Entity
@Table(name="public.user")
public class User {
    private Integer userId;
    private String userName;
    private String passWord;

    @Id
    @GeneratedValue(generator="increment")
    @GenericGenerator(name="increment", strategy = "increment")
    @Column(name = "user_id")
    public Integer getUserId() {
        return userId;
    }

    public void setUserId(Integer userId) {
        this.userId = userId;
    }

    @Column(name = "username")
    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    @Column(name = "password")
    public String getPassWord() {
        return passWord;
    }

    public void setPassWord(String passWord) {
        this.passWord = passWord;
    }

}

注解说明:@Entity实体类标注, @Table标注表名,注意表名前面要写模式名(public),被坑过. @Id 表示主键 @Column列名
2 查询数据库代码Demo:


final StandardServiceRegistry registry = new StandardServiceRegistryBuilder()
                .configure().build();
SessionFactory sessionFactory = null;
try {
    //注册
     sessionFactory = new MetadataSources( registry )
                     .buildMetadata()
                     .buildSessionFactory();
    } catch (Exception e) {
     // The registry would be destroyed by the SessionFactory, 
     //but we had trouble building the SessionFactory
     // so destroy it manually.
     StandardServiceRegistryBuilder.destroy( registry );
}
    //创建会话工厂
    Session session = sessionFactory.openSession();
    //会话工厂生产会话 
    session.beginTransaction();
    //会话执行查询语句 ,获取结果
    List result = session.createQuery( "from model.User" ).list();
    for ( User user : (List<User>) result ) {
        System.out.println( "User (" + user.getUserName() + ") : " + user.getPassWord() );
    if (this.passWord.equals(user.getPassWord()) &&   this.userName.equals(user.getUserName())) {
                return "SUCCESS";
            }
        }
    session.getTransaction().commit();
    session.close();

总结一下查询的步骤:

1 注册
2 创建会话工厂
3 会话工厂生产会话
4 创建查询语句
5 会话执行查询语句
6 获取结果

postgreSQL&hibernate整合实现主键自增 这个错误是咋回事勒,第一次使用postgreSQL,与hibernate整合,实现userid自增,结果出错了 this.getHibernateTemplate().save(userInfo); Console显示结果Hibernate: select max(userid) from UserInfo jsp页面显示错误 org.springframework.dao.I 阅读详情

相关推荐

eclipse hibernate 从PostgreSQL数据库自动生成实体类

1. 配置hibernate 2.打开hibernate configurations窗口 3.自动生成实体类 2.打开hibernate

ansedon的博客 1312

springboot + hibernate + postgresql实战备忘录

springboot + hibernate + postgresql 踩坑纪实

Jason_Zhang的专栏 513

32、PostgreSQL与Hibernate开发指南

本文详细介绍了在PostgreSQL数据库环境下使用Hibernate进行高效数据库开发的指南。内容涵盖数据持久化、实体加载、列表查询、命名查询、动态查询、实体修改与删除操作,以及关联映射、抓取策略、性能调优等关键主题。通过合理的事务管理、缓存配置和抓取策略,可以优化应用程序性能并提升开发效率。

c2d3e4f的博客 68

hibernate 连接postgresql数据库

一,需要的jar包: 二、配置文件信息:         "-//Hibernate/Hibernate Configuration DTD 3.0//EN"         "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">     postgres     123456

仙羽刺的博客 5015

33、深入探索Hibernate与PostgreSQL的优化配置与应用

本文深入探讨了Hibernate与PostgreSQL的优化配置与应用,涵盖缓存并发策略、连接池配置(包括Hibernate内置连接池和第三方连接池c3p0)、处理分区表的方法,以及数据库性能优化的多个方面,包括清理操作、配置参数调整、查询优化等内容。此外,还介绍了数据类型、索引操作、事务处理与并发控制、函数与存储过程的应用,旨在提升应用程序的性能和稳定性。

c2d3e4f的博客 117

VSLAM框架对比

格VSLAM特点介绍: (一)ORB-SLAM2 (二)ORB-SLAM3 (三)LSD-SLAM (四)

ljtx200888的博客 2295

通过hibernate访问postgreSQL的搭建过程

环境:win7,Intellij IDEA postgreSQL的安装: 安装包下载:https://www.postgresql.org/download/ 去官网下载postgresql-9.1.3-1-windows.exe(46M) 傻瓜式安装,跟着安装引导走,一路next,用户名默认为 postgres,密码*****,端口默认5432 启动服务,打开services.msc...

qq_34325222的博客 1037

王道考研操作系统笔记(第一章)附:王道考研408所有PPT和思维导图

学习感想 别人的笔记对你的学习基本上没有用处,容易培养人的惰性,如需ppt和思维导图请拉到最后,有github链接 记笔记并不是一件浪费时间的事情,还有利于多次学习 真心希望大家在学习的过程中记笔记 操作系统 第一章 计算机系统概述 1.1 操作系统 1.1.1 操作系统的概念和功能 概念 操作系统(Operating System, OS)是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配;以提供给用户和其他软件方便的接口和环境;它是计算机系统中最基本的系统软

qq_41732756的博客 1万+

在Hibernate中使用存储过程

本文介绍了从休眠状态调用存储过程的不同方法。 JDBC操作将不涉及。 PostgreSQL将用作数据库。 CREATE DATABASE example; CREATE TABLE company ( company_id BIGSERIAL PRIMARY KEY, name TEXT NOT NULL ); CREATE TABLE benefit ( benefit_...

最佳 Java 编程 680

Verilog流水线CPU设计(超详细)

快把这一篇给更了

Ace Cheney的博客 7万+

SAP数据导入避坑指南:财务期初上线实操全流程(含常见错误排查)

本文详细解析了SAP财务期初数据导入的全流程,包括数据准备、主数据标准化、余额与未清项导入等关键步骤,并提供了常见错误排查和解决方案。特别强调了过渡科目和存货价值的处理技巧,帮助企业在SAP系统上线时避免数据导入陷阱,确保财务数据的准确性和系统平稳运行。

weixin_30832143的博客 396

Hibernate操纵PostgreSQL数据库

Hibernate操纵PostgreSQL数据库 环境 java 12.0.1 Apache Maven 3.6.3 MySQL Server version: 5.7.18-20170830-log 20170531 hibernate-core-5.4.27.Final.jar PostgreSQL 12.4 IntelliJ IDEA 2020.2.3 (Ultimate Edition) Maven配置文件 <?xml version="1.0" encoding="UTF-8"?>

qq_44486439的博客 1888

具身智能与空天具身智能:从理论到实践的AIBOX技术革命

本文深入探讨了具身智能从理论到实践的发展,重点介绍了AIBOX技术如何作为边缘智能计算模块,为无人机、机器人等无人系统提供可进化的“大脑”。文章通过空天具身智能等应用场景,阐述了AIBOX在实现感知、决策、行动一体化闭环中的核心作用,并展望了其在协同智能与规模化部署中的未来挑战与机遇。

lll78的博客 767

使用hibernate和PostgreSQL进行分区

第一步,建表 父表:tablename create table z_tablename_0 (check (fenqu=0)) INHERITS(tablename); create table z_tablename_1 (check (fenqu=1)) INHERITS(tablename); create table z_tablename_2 (check (fenqu=2)) I

一个人的专栏 1678

大一Python之循环解决实际问题

pythin之循环解决实际问题

weixin_66263546的博客 2287

180.在 Vue3 中使用 OpenLayers 实现多个多边形的绘制、编辑、删除与清空

【摘要】本文介绍如何在Vue3+TypeScript环境下使用OpenLayers实现多边形地图交互功能。通过Composition API封装核心逻辑,实现了多边形绘制、编辑、删除及清空等操作。关键技术包括:使用VectorLayer管理图形数据,Draw/Modify/Select交互控制,以及通过ref()管理交互状态。文中提供了完整代码示例,并解决了交互对象叠加问题,为开发GIS应用提供了基础模块。该方案支持扩展为数据库存储、后端交互等高级功能。

小彭的博客 770

Hibernate整合postgresql出错

Hibernate整合postgresql出错环境问题解决方案 环境 Spring Boot + JPA + Hibernate + Postgresql 问题 启动时抛出异常: java.lang.reflect.InvocationTargetException: null at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Meth...

Luncert的博客 541

PCL 点云圆柱形邻域搜索【2026最新版】

圆柱形邻域搜索是KD-tree算法在点云数据处理中的扩展应用,在一些特定场景应用中具有无与伦比的优势。博客长期更新,本文最近一次更新时间为:2026年5月4日。

点云侠的博客 3451

Spring Data JPA 之 Hibernate 加载过程与配置项

这⼀讲,我们来分析⼀下在 Spring Data JPA 的项⽬下⾯ Hibernate 的配置参数有哪些,先从 Hibernate 的整体架构进⾏分析。

曾小二的博客 2760

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

如何设置Hibernate4+PostgreSQL中的自增字段?

首先,在PostgreSQL中是通过创建一个sequence来设置自增字段的,如下: -- Sequence: seq_department_id -- DROP SEQUENCE seq_department_id; CREATE SEQUENCE seq_department_id INCREMENT 1 MINVALUE 1 MAXVALUE 9999999999 ST

道 2181

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

postgresql_如何使用Hibernate将PostgreSQL枚举映射到JPA实体属性

postgresql介绍 开源的hibernate-types项目允许您映射JSON,ARRAY, YearMonth , Month或特定于数据库的列(例如INET地址)。 在本文中,我们将看到使用JPA和Hibernate时如何将PostgreSQL Enum类型映射到Java数组。 Maven依赖 首先,您需要在项目pom.xml配置文件中设置以下Maven依赖项: <depen...

cunfeng7797的博客 493

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

上一篇: Disabling contextual LOB creation as createClob() method threw error : java.lang.reflect.InvocationT
下一篇: hibernate 实现多表连接查询(简单介绍)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值