通过hibernate访问postgreSQL的搭建过程

  1. 环境:win7,Intellij IDEA
  2. postgreSQL的安装:
    1. 安装包下载:https://www.postgresql.org/download/ 去官网下载postgresql-9.1.3-1-windows.exe(46M)
    2. 傻瓜式安装,跟着安装引导走,一路next,用户名默认为 postgres,密码*****,端口默认5432
    3. 启动服务,打开services.msc,如果postgre没有启动则手动启动
  3. postgreSQL客户的工具的安装:目前有多种客户工具,我用的是navicat for postgreSQL,去官网下载https://www.navicat.com/download/navicat-for-postgresql
    1. 解压压缩包,点击navicat.ext启动
    2. 双击连接->填写用户名,密码,端口,连接名,创建连接
    3. 右键点击连接名称,创建数据库
    4. 创建模式,(postgre的数据结构多了一层模式的结构,数据库>模式>表>字段),数据库创建时有默认的模式为public,右键数据库名,创建模式myschema
    5. 创建表,右键表,创建表,填写字段(user_id,username,password);
  4. 搭建hibernate环境:
    1. 用Intellij 新建javaWeb项目
    2. 引入jar包:
      1.   hibernate jar包 在pom.xml写依赖:

        <!--hibernate--> <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-core --> <dependency>   <groupId>org.hibernate</groupId>   <artifactId>hibernate-core</artifactId>   <version>5.1.2.Final</version> </dependency>
      2. postgreSQL jdbc jar包引入   在pom.xml中写依赖:
        <dependency>   <groupId>postgresql</groupId>   <artifactId>postgresql</artifactId>   <version>9.1-901-1.jdbc4</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 -->
              <!-- Database connection settings -->
              <property name="connection.driver_class">
                  org.postgresql.Driver
              </property>
              <property name="connection.url">
                  jdbc:postgresql://10.21.132.19:5432/test
              </property>
              <property name="connection.username">postgres</property>
              <property name="connection.password">88075998</property>
      
              <!-- JDBC connection pool (use the built-in) -->
              <property name="connection.pool_size">1</property>
      
              <!-- SQL dialect -->
              <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="model.User"></mapping>
          </session-factory>
      
      </hibernate-configuration>
  5. hibernate的查询语句,hibernate的操作有两种1.xml文件配置2.注解,这里用的是注解法,图个方便.
    1. 实体类的定义,如下:

      package model;
      
      import org.hibernate.annotations.GenericGenerator;
      
      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. 获取结果

  

时间: 2024-12-08 00:26:41

通过hibernate访问postgreSQL的搭建过程的相关文章

SSH框架搭建过程

什么是SSH? SSH对应 struts spring hibernate struts 采用MVC模式,主要是作用于用户交互 spring 采用IOC和AOP~作用比较抽象,是用于项目的松耦合 hibernate 是对象持久化框架,其实就是实体类和数据库表建立关系,操作类就会触发相应的sql语句,可以不用写任何sql语句,完成数据库编程(引自百度知道) SSH就是Struts + Spring + Hibernate 3个Java框架的集合,现在Java开发中常用的框架组合.用来开发后台,与前

loganalyzer搭建过程

试验准备:主机A和主机B,IP地址分别为192.168.131.130和192.168.131.136,操作系统为RHEL6.4 x86_64,为最小化安装,两台服务器均关闭防火墙和SELINUX 安装并设置LAMP环境 安装LAMP环境 # yum -y install httpd mysql mysql-server php php-mysql mysql-devel 启动服务并加入开机启动 启动apache # service httpd start # chkconfig httpd o

Node.js, Express的服务器搭建过程的问题

Node.js, Express的服务器搭建过程的问题 Express : node.js 的框架,根据2012年BYvoid的说法,是node.js官方唯一推荐的框架 怎么搭建项目? - 安装nodejs->npm->express - express 的问题: 2017年, express-generator已经被独立成命令行工具了,所以要用 npm install express-generator 这样才能用express命令 怎么启动项目? 启动服务器可以用node app.js,因

分布式实时日志系统(一)环境搭建之 Jstorm 集群搭建过程/Jstorm集群一键安装部署

最近公司业务数据量越来越大,以前的基于消息队列的日志系统越来越难以满足目前的业务量,表现为消息积压,日志延迟,日志存储日期过短,所以,我们开始着手要重新设计这块,业界已经有了比较成熟的流程,即基于流式处理,采用 flume 收集日志,发送到 kafka 队列做缓冲,storm 分布式实时框架进行消费处理,短期数据落地到 hbase.mongo中,长期数据进入 hadoop 中存储. 接下来打算将这其间所遇到的问题.学习到的知识记录整理下,作为备忘,作为分享,带给需要的人. 淘宝开源了许多产品组件

ubuntu13.04下ftp的简单搭建过程

本文主要介绍一下ubuntu13.04下ftp的简单搭建过程: 主要实现基本的功能: l 实现匿名用户访问 l 上传资料 l 实现对特定ip或ip段开放服务 l 等等... 下面介绍一下安装过程: Ubuntu自带的FTP服务器是vsftpd. 1.安装vsftpd 对于ubuntu下相对简单只需要一条 sudo apt-get install vsftpd 安装默认在/src下建立一个ftp目录. 应该可以看到一个空白内容的ftp 文件. 默认状态下是可以匿名下载,但不能写入或是上传 2.设置

世界你好! 个人网站搭建过程

这几天花了点时间,在西部数码购买了个服务器,使用WordPress4.0中文版构建了这个博客,安装文件你可以在这里下载 http://pan.baidu.com/s/1EnnFw.搭建过程分享给大家! 搭建一个网站你需要了解一下几个知识点: 1.服务器或者虚拟服务器:你可以把它简单的理解为一台24小时提供服务的电脑,它可以存储你需要的数据,比如网站程序,图片,文件,视频等等. 2.域名: 这个很简单,就是一个名字而已,举个简单的例子 www.baidu.com 这就是一个域名,而我的网站域名就是

【转】Nginx windows下搭建过程

Nginx windows下搭建过程 内容列表: 简要介绍 下载安装 配置测试 一.简要介绍 Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器. Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本0.1.0发布于2004年10月4日.其将源代码以类BSD许可证的形式发布,因它的稳定性.丰富的功能集.示例配置文件和低系统资源的消耗而闻名.2

C#访问PostGreSQL数据库的方法 http://www.jb51.net/article/35643.htm

这次的项目中的一个环节要求我把PostGreSQL数据取出来,然后放到SqlServer里,再去处理分析. http://www.jb51.net/article/35643.htm - 我对PostGreSQL只是一知半解,记录这个过程是希望如果以后微软技术方向的人遇到类似的需求,可以有个比较直接的的参考. 在不熟悉的知识领域里,总是有搜索引擎可以帮到我. 初步了解PostGreSQL数据库及数据形态 首先我想看看PostGreSQL的数据库以及我想要获取的数据形态是什么样子的,Linux和P

tp-01 搭建过程

1:拷贝ThinkPHP框架系统文件夹自己的www目录中的tp-shop文件夹中 2:新建自己的项目文件(比如:shop)夹与ThinkPHP框架系统文件夹在同一级目录(当然也可以不同) 3: 在tp-shop目录下建立index.php并且在页面中引入ThinkPHP文件夹中ThinkPHP.php文件 include '../ThinkPHP/TinkPHP.php'; 4: 访问路径  http://localhost/tp-shop/shop/index.php   出现欢迎界面表示引入