JPA的创建和增,删,改

 第一步:

创建 persistence.xml, 在这个文件中配置持久化单元

需要指定跟哪个数据库进行交互;

需要指定 JPA 使用哪个持久化的框架以及配置该框架的基本属性

<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="2.0">

    <persistence-unit name="NewPersistenceUnit">
        <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
        <properties>
            <property name="hibernate.connection.url" value="jdbc:mysql:///jpa"/>
            <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
            <property name="hibernate.connection.username" value="root"/>
            <property name="hibernate.connection.password" value="root"/>
            <property name="hibernate.archive.autodetection" value="class"/>
            <property name="hibernate.show_sql" value="true"/>
            <property name="hibernate.format_sql" value="true"/>
            <property name="hbm2ddl.auto" value="update"/>
        </properties>
    </persistence-unit>
</persistence>

第二步:创建实体类, 使用 annotation 来描述实体类跟数据库表之间的映射关系.

package org.peter.model;

import javax.persistence.*;

@Entity(name = "t_user")
/*表示该类是一个实体类,name表示实体类生成的表单的名字*/
public class User {
    private long id;
    private String username;
    private String password;
    private String address;

    @Id//表示id的属性为主键
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    //设置主键生成器strategy的意思是策略
    @Column(name = "id")//该属性给数据库id别名
    public long getId() {
        return id;
    }

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

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }
}

第三步:创建一个main类来实现增删改查

package org.peter;

import org.junit.Test;
import org.peter.model.User;

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

/**
 * Created by Lenovo on 2017/7/27.
 */
public class main {
    public static void main(String[] args) {
        //add();
    }
    @Test
    public void add() {
        //1,创建EntityManagerFactory
        EntityManagerFactory factory =  Persistence.createEntityManagerFactory("NewPersistenceUnit");
        //2,创建ManagerFactory
        EntityManager manager = factory.createEntityManager();
        //3,开启事物
        EntityTransaction tx = manager.getTransaction();
        tx.begin();
        //4,实现添加
        User user = new User();
        user.setUsername("张一山");
        user.setAddress("深圳");
        user.setPassword("456");
        manager.persist(user);//
        //5,提交事物
        tx.commit();
        //6,关闭资源
        manager.close();
        factory.close();
    }

}

注意:如果在运行的时候爆出version52的话就是jdk版本太低

补充:注解

@Entity(name = "t_user")//表示该类是一个实体类,name属性表示实体类生成的表的名字

@Temporal注解用来精确控制Date类型的数据对应的数据库中字段的数据类型
    三种取值:
    1.DATE 日期
    2.TIME 时间
    3.TIMESTAMP 日期+时间

@Id//表示id属性是一个主键
@GeneratedValue(strategy = GenerationType.IDENTITY)//设置主键生成策略
@Column(name = "uid")//配置该属性在数据库中生成的字段的名称

@Basic(fetch = FetchType.EAGER)
如果get方法没有任何注解,则默认就有@Basic注解,该注解表示将一个属性映射到数据表中的字段上
fetch = FetchType.EAGER表示一个抓取策略,延迟or正常加载

@Transient//@Transient注解表示该属性不在数据表中生成对应的列


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值