使用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();
 }

 

结果如下:

 

posted @ 2019-08-16 11:32  emmmmmm哇咔咔  阅读(321)  评论(0编辑  收藏  举报