hibernate入门

Posted xmf3628

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hibernate入门相关的知识,希望对你有一定的参考价值。

1. 什么是hibernate(MyBatis)
ORM框架/持久层框架


ORM(Object Relational Mapping):对象关系映射。
对象与关系型数据间之间的映射管理框架

优势:跨数据库的无缝移植(SqlServer、Oracle、mysql

如何使用hibernate

1.在项目中添加hibernate(5.2.12.Final)支持(手动添加)

 

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>zking</groupId>
  <artifactId>hibernate01</artifactId>
  <packaging>war</packaging>
  <version>0.0.1-SNAPSHOT</version>
  <name>hibernate01 Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <properties>
  <junit.vesion>4.12</junit.vesion>
  <servlet.vesion>4.0.0</servlet.vesion>
  <!--hibernate(5.2.12 Final)  -->
  <hibernate-vesion>5.2.12.Final</hibernate-vesion>
   <!--mysql+  -->
  <mysql.version>5.1.44</mysql.version>
  </properties>
  
 <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>$junit.vesion</version>
      <scope>test</scope>
    </dependency>
    
    
    <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
   <dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>$servlet.vesion</version>
    <scope>provided</scope>
   </dependency>
    
    <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-core -->
  <dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-core</artifactId>
    <version>$hibernate-vesion</version>
  </dependency>
    
    
      <!--mysql  -->
  <dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>$mysql.version</version>
   </dependency>
    
    
  </dependencies>
  <build>
    <finalName>hibernate01</finalName>
     <plugins>
       <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.7.0</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
    </plugins>
  </build>
</project>

 

 

 

 2.在resource目录下添加hibernate.cfg.xml(核心配置文件)

 技术图片

 

 hibernate.cfg.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
	"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
	"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
	<hibernate-configuration>
	   <session-factory>
	   <!--1.数据库相关  -->
	   <!--(connection.username|connection.password|connection.url|connection.driver_class|dialect)  -->
       <!--数据库账号  -->
      <property name="connection.username">root</property>
	  <!--数据库密码  -->
	  <property name="connection.password">123</property>
	  <!--数据库连接的url  -->
	  <!--特殊字符!!!  特殊字符!!! 特殊字符!!!-->
	  <property name="connection.url">
	  jdbc:mysql://localhost:3306/book?useUnicode=true&characterEncoding=UTF-8
	  </property>
	  <!-- 数据库连接驱动  -->
	  <property name="connection.driver_class">
	  com.mysql.jdbc.Driver
	  </property>
	  <!--数据库方言  -->
	  <property name="dialect">
	   org.hibernate.dialect.MySQLDialect
	  </property>
	   <!--2.调试相关  -->
	   <!--(show_sql|format_sql)  -->
	   <property name="show_sql">true</property>
	   <property name="format_sql">true</property>
	   <!--3.实体映射相关  -->
	  <mapping resource="com/hibernate01/entity/Book.hbm.xml"/>
	  
	  
	   </session-factory>
	</hibernate-configuration>

  实体类

public class Book implements Serializable
   /**
     * 
     */
    private static final long serialVersionUID = 1L;
   
    
   private Integer bid;
   private String bname;
   private Float price;
   private String image;
   
   
   
   
   
public String getImage() 
    return image;






public void setImage(String image) 
    this.image = image;






public Integer getBid() 
    return bid;






public void setBid(Integer bid) 
    this.bid = bid;






public String getBname() 
    return bname;

 

 

实体映射文件

Book.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.hibernate01.entity.Book" table="t_mvc_book">
 
  <!-- id:实体属性名  
     type:实体属性类型
     column:对应列名
  -->
  <id name="bid" type="java.lang.Integer" column="bid">
  <generator class="increment"/>
  </id>
  <property name="bname" type="java.lang.String" column="bname"/>
  <property name="price" type="java.lang.Float" column="price"/>
  <property name="image" type="java.lang.String" column="image"/>
  
 </class>
</hibernate-mapping>

 

接下来测试一个Demo完成对t_mvc_book 的增删改查

public class Demo 
  public static void main(String[] args) 
//      4.1 CRUD操作步骤
//        4.1.1 读取配置
//        4.1.2 创建SessionFactory
//        4.1.3 打开Session
//        4.1.4 开启事务
//        4.1.5 CURD
//        4.1.6 提交事务/回滚事务
//        4.1.7 关闭Session
      
      //1.读取配置,加载hibernate核心配置文件
       Configuration config=new Configuration();
        config.configure("hibernate.cfg.xml");
      //2.创建SessionFactory(1)
        SessionFactory SessionFactory = config.buildSessionFactory();
        
       //3.打开Session
        //注:此Session与jsp/Servlet的session要区别对待
        Session session= SessionFactory.openSession();
        //4.开启事务
        Transaction trans = session.beginTransaction();

 

 新增一本书

 //5.crud
        Book book=new Book();
        //5.1 save(保存)
//        
        book.setBname("历史");
        book.setPrice(999f);
        
        session.save(book);
        

 

 

技术图片

 

 技术图片

查询单个

技术图片

 

 

 技术图片

删除历史

技术图片

 

 

 

 技术图片

 

 

 技术图片

修改资治通鉴为本草纲目

技术图片

 

 技术图片

 

 技术图片

技术图片

 

以上是关于hibernate入门的主要内容,如果未能解决你的问题,请参考以下文章

Hibernate入门

Hibernate入门

hibernate快速入门

Hibernate入门程序

《Java从入门到放弃》入门篇:hibernate基本用法

Hibernate入门简介----张冬