• 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
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
  • 相关阅读:
    sourceinsight问题
    mysql函数调用过程
    visual studio 中sstrcpy报错的问题
    mysql基本操作
    c/c++程序连接mysql
    mysql 在visual studio中的配置
    va_start
    c do{}while(0)
    .NET 通用权限设计
    https://zhidao.baidu.com/question/362784520674844572.html
  • 原文地址:https://www.cnblogs.com/johnfung/p/3544485.html
Copyright © 2020-2023  润新知