JPA 2.1实例(hibernate 实现)

1.环境准备

1)java se 7

2)maven 3

3)mysql database

2.创建数据库和表结构

首先创建数据库。创建数据库脚本如下:

create database jpa;

创建表语句如下:

CREATE TABLE `products` (                                
            `id` int(11) NOT NULL AUTO_INCREMENT,                  
            `product_name` varchar(250) DEFAULT NULL,              
            `product_description` varchar(400) DEFAULT NULL,       
            `stock_qty` double(10,2) DEFAULT NULL,                 
            `price` double(10,2) DEFAULT NULL,                     
            PRIMARY KEY (`id`)                                     
   ) ENGINE=InnoDB;

3.创建maven项目

使用myeclipse 创建maven项目,创建完成后目录结构如下图:

image

4.设置项目依赖POM.XML文件

   代码如下所示:

<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/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.johnfung.study</groupId>
  <artifactId>jpa</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>jpa</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencies>
    <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.28</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate.javax.persistence</groupId>
            <artifactId>hibernate-jpa-2.0-api</artifactId>
            <version>1.0.1.Final</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-entitymanager</artifactId>
            <version>4.0.1.Final</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
        </dependency>  
  </dependencies>
</project>

5.创建Entity Class

下面的class为product.java

package com.johnfung.study.jpa;

import javax.persistence.*;

/**
* @author JohnFung
* More info at http://www.cnblogs.com/johnfung/
*/

@Entity
@Table(name="products")
public class Product {
        
        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        private int id;
        
        @Column(name="product_name")
        private String productName;
        
        @Column(name="product_description")
        private String productDescription;
        
        @Column(name="stock_qty")
        private Double stockQty;
        
        @Column(name="price")
        private Double price;
         
        public Product(){};
        public Product(String productName,String productDescription,Double price){
            this.productName=productName;
            this.productDescription=productDescription;
            this.price=price;
        }
        
        public int getId() {
                return id;
        }

        public void setId(int id) {
                this.id = id;
        }

        public String getProductName() {
                return productName;
        }

        public void setProductName(String productName) {
                this.productName = productName;
        }

        public String getProductDescription() {
                return productDescription;
        }

        public void setProductDescription(String productDescription) {
                this.productDescription = productDescription;
        }

        public Double getStockQty() {
                return stockQty;
        }

        public void setStockQty(Double stockQty) {
                this.stockQty = stockQty;
        }

        public Double getPrice() {
                return price;
        }

        public void setPrice(Double price) {
                this.price = price;
        }
        

}

6.编写测试代码

代码编写如下:

package com.johnfung.study.jpa;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.EntityTransaction;
import javax.persistence.Persistence;

import org.junit.Test;

/**
 * Unit test for simple App.
 */
public class AppTest 
{
    @Test
    public void addProduct(){
        EntityManagerFactory factory = Persistence.createEntityManagerFactory("persistenceUnit");
        EntityManager manager = factory.createEntityManager();
        EntityTransaction tx = manager.getTransaction();
        tx.begin();
        try {
        int numOfEmployees = manager.createQuery("Select a From Product a", Product.class).getResultList().size();
        if (numOfEmployees == 0) {
            Product product = new Product("book","jpa book",34.4);
            manager.persist(product);            
        }
        } catch (Exception e) {
            e.printStackTrace();
        }
        tx.commit();
    }
}
到此所有工作都已完成,可以测试程序是否运行成功。
作者:JohnFung
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
原文地址:https://www.cnblogs.com/johnfung/p/3544485.html