重温hibernate(二)JPA环境搭建

目录

实现:保存一个客户到数据库

项目结构

pom.xml

Customer.java

persistence.xml

CustomerTest.java


实现:保存一个客户到数据库

idea建maven项目

项目结构

pom.xml

只需这四个依赖core,log4j,mysql-connector,entitymanager

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-core</artifactId>
    <version>5.4.1.Final</version>
  </dependency>
 
    <dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
      <version>1.2.17</version>
    </dependency>
 
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.44</version>
    </dependency>

   <!--为什么用5.1.0而不用5.4.1后面会提-->
    <dependency>
      <groupId>org.hibernate</groupId>
      <artifactId>hibernate-entitymanager</artifactId>
      <version>5.1.0.Final</version>
    </dependency>

Customer.java

package com.luobo.entity;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

/**
 * . Description:
 *
 * @author: ws
 * @version: 1.0
 */
@Entity
@Table(name = "cus_customer")
public class Customer {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)//主键生成策略
    @Column(name="cus_id")
    private int id;

    private String name;

  public int getId() {
    return id;
  }

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

  public String getName() {
    return name;
  }

  public void setName(String name) {
    this.name = name;
  }
}

persistence.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!--导入xsd约束 entitymanager.jar 里org\hibernate\jpa\persistence_2_0.xsd找,因为5.4.1里,发现没有org文件夹,所以用5.1.0-->
<persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd" version="2.0">
  <!--配置持久化单元
  transaction-type:指定事务类型
  JTA:java transaction api
  RESOURCE_LOCAL:本地代码事务-->
  <persistence-unit name="myJPAUnit" transaction-type="RESOURCE_LOCAL">
    <!--指定由jpa注解的实体类-->
    <class>com.luobo.entity.Customer</class>
    <!--连接数据库配置,与hibernate同,更改了数据库方言,因为之前org.hibernate.dialect.MySQLDialect不行,说是
mysql5.0之后需要使用org.hibernate.dialect.MySQL5InnoDBDialect-->
    <properties>
      <!--1.连接数据库信息-->
      <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
      <property name="hibernate.connection.url" value="jdbc:mysql:///test"/>
      <property name="hibernate.connection.username" value="root"/>
      <property name="hibernate.connection.password" value="123456"/>
      <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect"/>
      <!--2.hibernate可选配置-->
      <property name="hibernate.show_sql" value="true"/>
      <property name="hibernate.format_sql" value="false"/>
      <property name="hibernate.hbm2ddl.auto" value="update"/>
    </properties>
  </persistence-unit>
</persistence>

CustomerTest.java


import com.luobo.entity.Customer;
mport javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import org.junit.Test;
 
/**
 * . Description:
 *
 * @author: ws
 * @version: 1.0
 */
public class CustomerTest {
    /*
    *步骤分析:
    * 1.解析主配置文件
    * 2.根据配置文件创建EntityManagerFactory
    * 3.根据EntityManagerFactory创建EntityManager
    * 4.开启事务
    * 5.执行操作(保存)
    * 6.提交事务
    * 7.释放资源
    * */
 
    @Test
    public void test() {
        EntityManagerFactory factory = Persistence.createEntityManagerFactory("myJPAUnit");
        EntityManager manager = factory.createEntityManager();
//        EntityTransaction tx = manager.getTransaction();
//        tx.begin();
//        Customer c = new Customer();
//        c.setName("2");
//        manager.persist(c);
//        tx.commit();
//        manager.close();
    }
}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值