java jpa 使用_JPA使用入门

标签:

JPA能干什么?我在前面一遍文章《初步了解JPA》基本描述了。不过你不需要点击回去再看。这里简单的再提一下JPA的功能,就是:(1)实现“对象-关系”映射;(2)对象持久化到数据库;(3)对象查询。

JPA要怎么用,我们直接入手来跑起一个JPA的demo,我这里是采用Hibernate的JPA实现。

(1)创建一个普通java工程。

(2)导入必要的包。

从Hibernate官方下载一个基本包,我这里下载后得到的是hibernate-release-5.0.4.Final.zip。解压后可以文件结构大概如下:

20180110171538100089.png

其中lib文件夹就是我们需要导入到项目中的包。简单的实现,导入required、jpa、jpa-metamodel-generator文件夹下的所有jar包既可。

另外,不要忘了导入JDBC驱动。我这里用的是mysql的。从MySQL官网下的mysql-connector-java-5.1.37.zip。解压导入就行

(3)创建配置文件

JPA有一个硬性要求,配置文件必须是类路径下的META-INF目录下的persistence.xml。在我这里可以看到

20180110171538103995.png

文件的内容如下:

version="1.0"

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_1_0.xsd">

如果你的数据库设置和我不一样,自己改一下配置文件。相信一看就懂 ^_^

(3)代码

我这里先写两个类。

20180110171538105948.png

TestBasic类内容如下:

import javax.persistence.EntityManager;

import javax.persistence.EntityManagerFactory;

import javax.persistence.Persistence;

import entity.Person;

public class TestBasic {

public static void main(String[] args) {

EntityManagerFactory factory = Persistence.createEntityManagerFactory("test");

EntityManager entityManager = factory.createEntityManager();

Person person = new Person();

person.setName("袁");

entityManager.getTransaction().begin();

entityManager.persist(person);

entityManager.getTransaction().commit();

entityManager.close();

factory.close();

}

}

Person.java如下:

package entity;

import javax.persistence.Entity;

import javax.persistence.Id;

@Entity

public class Person {

@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;

}

}

数据库中只是建好了jpa库,里面没有表。

运行这段代码,就可以看到数据库中表被建立起来了。表名和类名Person有点类似,是person。并且有数据了。

20180110171538107901.png

很明显,可以知道这其实就是对数据库的插入操作。那么怎么查询呢。

在TestBasic类中改一下代码。

main方法里这样写:

EntityManagerFactory factory = Persistence.createEntityManagerFactory("test");

EntityManager entityManager = factory.createEntityManager();

Person person = entityManager.find(Person.class, 0);//刚才在数据库里看到,id是0。

System.out.println(person.getName());

entityManager.close();

factory.close();

运行代码你会看到打印出“袁”。

那么改操作呢:

继续改main方法里的代码:

EntityManagerFactory factory = Persistence.createEntityManagerFactory("test");

EntityManager entityManager = factory.createEntityManager();

entityManager.getTransaction().begin();

Person person = entityManager.find(Person.class, 0);//刚才在数据库里看到,id是0。

person.setName("邓");

entityManager.getTransaction().commit();

entityManager.close();

factory.close();

可以看到数据里的数据变了。

20180110171538108878.png

最后一个操作,删除数据。

main方法中的代码改成如下:

EntityManagerFactory factory = Persistence.createEntityManagerFactory("test");

EntityManager entityManager = factory.createEntityManager();

entityManager.getTransaction().begin();

Person person = entityManager.find(Person.class, 0);//刚才在数据库里看到,id是0。

entityManager.remove(person);

entityManager.getTransaction().commit();

entityManager.close();

factory.close();

运行这段代码,发现数据库里的person表没数据了。

JPA的增删改查的演示操作就此完成了。

标签:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值