zoukankan      html  css  js  c++  java
  • 使用maven和myeclipse配置hibernate以及基本的入门程序

    hibernate是使用pojo类和数据库表映射的方式,因此hibernate的创建和配置需要有:

    1.导包

    2.创建hibernate.cfg.xml核心配置文件

    3.创建与数据库表所对应的pojo类

    4.创建和配置让数据库表和pojo类能映射起来的映射文件Goods.hbm.xml文件

    5.测试

    1.首先创建一个项目后,在pom.xml文件中导入hibernate所需要的依赖

    <dependencies>
      <!-- hibernate的核心依赖包 -->
      <dependency>
       <groupId>org.hibernate</groupId>
       <artifactId>hibernate-core</artifactId>
       <version>5.3.6.Final</version>
      </dependency>
      <!-- jdbc的包 -->
      <dependency>
       <groupId>mysql</groupId>
       <artifactId>mysql-connector-java</artifactId>
       <version>5.1.32</version>
      </dependency>
      <!-- 查看日志文件的log4j包 -->
      <dependency>
       <groupId>log4j</groupId>
       <artifactId>log4j</artifactId>
       <version>1.2.12</version>
      </dependency>
      <!-- 测试用的依赖包 -->
      <dependency>
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
       <version>4.11</version>
      </dependency>
     </dependencies>

    maven会自动将hibernate其他所需要的依赖包自动导入,最后可以在文件目录下查看

    2.创建一个hibernate.cfg.xml文件,注意这个名称不可变

    在其中配置连接数据库所需要的信息:驱动路径,url,数据库的账号,密码

    注意这个文件如果使用maven的话只能创建在src/main/resources下,不要有多层目录。

    如果没有使用maven,将其创建在src目录下即可

    <?xml version='1.0' encoding='utf-8'?>
    <!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD//EN"
        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
    <hibernate-configuration>
     <session-factory>
      <!-- 连接数据库的基本信息 -->
      <!-- 驱动路径 -->
      <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
      <!-- url -->
      <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/test</property>
      <!-- 用户名 -->
      <property name="hibernate.connection.username">root</property>
      <!-- 密码 -->
      <property name="hibernate.connection.password">root</property>
      <!-- 方言 -->
      <!-- 告诉框架使用了什么数据库 -->
      <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
      <!-- 可以将向数据库发送的SQL语句显示出来 -->
      <property name="hibernate.show_sql">true</property>
      <!-- 格式化SQL语句 -->
      <property name="hibernate.format_sql">true</property>
      <!-- 加载映射文件 -->
     <!-- 在第三步配置pojo类和数据库表的映射文件 -->
      <mapping resource="Goods.hbm.xml" />
     </session-factory>
    </hibernate-configuration>
    3.创建pojo类
    一定要给其,get和set方法,因为hibernate是使用get和set方法来进行数据库的增删查改的
     private int id;
     private String goodsName;
     private double goodsPrice;
     private String goodsType;
     private int goodsNumber;
     public int getId() {
      return id;
     }
     public void setId(int id) {
      this.id = id;
     }
     public String getGoodsName() {
      return goodsName;
     }
     public void setGoodsName(String goodsName) {
      this.goodsName = goodsName;
     }
     public double getGoodsPrice() {
      return goodsPrice;
     }
     public void setGoodsPrice(double goodsPrice) {
      this.goodsPrice = goodsPrice;
     }
     public String getGoodsType() {
      return goodsType;
     }
     public void setGoodsType(String goodsType) {
      this.goodsType = goodsType;
     }
     public int getGoodsNumber() {
      return goodsNumber;
     }
     public void setGoodsNumber(int goodsNumber) {
      this.goodsNumber = goodsNumber;
     }
     @Override
     public String toString() {
      return "Goods [id=" + id + ", goodsName=" + goodsName + ", goodsPrice=" + goodsPrice + ", goodsType="
        + goodsType + ", goodsNumber=" + goodsNumber + "]";
     }
     
    4.创建和配置pojo类和数据库表的映射文件Goods.hbm.xml
    这个文件名可以随便,但后缀以xxx.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">
    <hibernate-mapping>
     <!-- name:实体路径 table:实体对应的表名 -->
     <class name="com.oracle.pojo.Goods" table="goods">
      <!-- column:数据库表的列 name:实体类中对应的名称  -->
      <!-- id标签只配主键,其余的列用property配置 -->
      <id name="id" column="id" >
       <!-- 主键的生成策略 -->
       <!-- 自增长,序列化等等 -->
    <!--native可以由hibernate自动判断使用的主键生成策略-->
       <generator class="native"></generator>
      </id>
      <property name="goodsName" column="goodsName"></property>
      <property name="goodsPrice" column="goodsPrice"></property>
      <property name="goodsType" column="goodsType"></property>
      <property name="goodsNumber" column="goodsNumber"></property>
     </class>
    </hibernate-mapping>
    5.测试是否配置成功
    我们在第一步已经导入了测试所需要的包,直接使用即可
     private Session session = null;
     private Transaction transaction = null;
     @Before
     public void Util() {
      // 加载配置文件
      Configuration configuration = new Configuration().configure();
      // 获取session工厂对象
      SessionFactory sessionFactory = configuration.buildSessionFactory();
      // 从工厂获取session对象
      session = sessionFactory.openSession();
      // 开启事务
      transaction = session.beginTransaction();
     }
     @org.junit.Test
     public void testName() throws Exception {
      //根据主键传入参数查询
      Goods goods = session.get(Goods.class, 1);
      System.out.println(goods);
      //提交事务
      transaction.commit();
     //关闭连接
      session.close();
     }
    结果如下:
  • 相关阅读:
    执行sudo命令时command not found的解决办法
    CentOS7编译安装libc++和libc++abi
    CentOS 7 编译安装clang+llvm
    如何使用 Issue 管理软件项目?
    西门子 S7-300 PLC 从入门到精通的100个经典问题
    PLC_SIM 出现I/O访问错误-技术论坛-工业支持中心-西门子中国
    C# Lambda表达式
    C# Task中的Func, Action, Async与Await的使用
    C#委托的介绍(delegate、Action、Func、predicate)
    委托 你怎么看?
  • 原文地址:https://www.cnblogs.com/mhm111/p/11362856.html
Copyright © 2011-2022 走看看