jpa with hibernate 如何在 maven 项目中使用jpa,以hibernate为例

如何在 maven 项目中使用jpa,以hibernate为例
源码:https://github.com/recheloo/test-hibernate-jpa
1、创建一个 maven 项目,并导入所需依赖

<?xml version="1.0" encoding="UTF-8"?>
<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.lin</groupId>
   <artifactId>test-hibernate-jpa</artifactId>
   <version>1.0-SNAPSHOT</version>

   <properties>
       <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
       <jackson.version>2.8.3</jackson.version>
       <java.version>1.8</java.version>
   </properties>

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

   <dependencies>
       <dependency>
           <groupId>org.projectlombok</groupId>
           <artifactId>lombok</artifactId>
           <version>1.16.6</version>
       </dependency>
       <dependency>
           <groupId>org.hibernate</groupId>
           <artifactId>hibernate-entitymanager</artifactId>
           <version>5.4.7.Final</version>
       </dependency>
       <dependency>
           <groupId>mysql</groupId>
           <artifactId>mysql-connector-java</artifactId>
           <version>5.1.6</version>
       </dependency>
       <dependency>
           <groupId>org.testng</groupId>
           <artifactId>testng</artifactId>
           <version>6.7</version>
       </dependency>
   </dependencies>

</project>

2、创建配置文件,创建的文件名称为:persistence.xml,并且目录必须是在:classpath/META-INF/ 下
目录结构:
在这里插入图片描述
persistence.xml 文件中的内容

<?xml version="1.0" encoding="UTF-8"?>

<persistence version="2.1"
             xmlns="http://xmlns.jcp.org/xml/ns/persistence"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence
             http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">

         <persistence-unit name="mysql-jpa">
         <class>Student</class>
                 <properties>
                         <property name="javax.persistence.jdbc.driver"
                                   value="com.mysql.jdbc.Driver" />
                         <property name="javax.persistence.jdbc.url"
                                   value="jdbc:mysql://192.168.0.167:3306/bar" />
                         <property name="javax.persistence.jdbc.user" value="root" />
                         <property name="javax.persistence.jdbc.password" value="root" />
                         <property name="hibernate.dialect"
                                   value="org.hibernate.dialect.MySQL5Dialect" />
                         <property name="hibernate.show_sql" value="true" />
                         <property name="hibernate.hbm2ddl.auto" value="update" />
                 </properties>
        </persistence-unit>
</persistence>


3、创建实体类,与数据库中的表对应起来 student.java

import lombok.Data;
import javax.persistence.*;

/**
 * Created by lzx on 2019/10/24.
 */
@Data
@Entity //@Entity注解,指定该实体类是一个基于JPA规范的实体类
@Table(name = "tb_student") //@Table注解,指定当前实体类关联的表
public class Student {

    @Id //@Id注解:声明属性为一个OID属性
    @GeneratedValue(strategy = GenerationType.IDENTITY) //@GeneratedValue注解,指定主键生成策略
    @Column(name = "stu_id") //@Column注解,设置属性与数据库字段的关系,如果属性名和表的字段名相同,可以不设置
    private long stuId;
    @Column(name="stu_name")
    private String stuName;
    @Column(name="stu_age")
    private Integer stuAge;
    @Column(name="stu_password")
    private String stuPassword;

}

4、创建jpa的工具类 JPAUtils.java

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

/**
 * Created by lzx on 2019/10/24.
 */

public class JPAUtils {

    public static EntityManagerFactory emf = createEntityManagerFactory();

    private static EntityManagerFactory createEntityManagerFactory(){

        EntityManagerFactory emf = Persistence.createEntityManagerFactory("mysql-jpa");

        return emf;

    }

    public static EntityManager getEntityManger(){

        EntityManager entityManager = emf.createEntityManager();

        return entityManager;

    }
}

5、创建测试类,运行,运行成功后,数据库中会出现创建的表以及添加的数据 StudentDAOTest.java

import org.junit.Test;

import javax.persistence.EntityManager;
import javax.persistence.EntityTransaction;

/**
 * Created by lzx on 2019/10/24.
 */
public class StudentDAOTest {

    @Test
    public void persist() {

        //1.获得实体管理类
        EntityManager manager = JPAUtils.getEntityManger();
        //2、获取事物管理器
        EntityTransaction transaction = manager.getTransaction();
        transaction.begin();
        //3、创建实体对象
        Student s = new Student();
        s.setStuName("张三");
        s.setStuAge(18);
        s.setStuPassword("zj");
        //4、保存到数据库
        manager.persist(s);
        //5、提交事物
        transaction.commit();
        //6、关闭资源
        manager.close();

    }

}

结果:数据库会自动创建下图的表,并且存入相应数据
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值