欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JPA案例

程序员文章站 2022-03-25 22:58:29
JPA的核心配置:persistent.xml内容 配置persistent-unit节点:持久化单元 name:持久化单元名称 transaction-type:事务处理方式 jpa的实现方式 数据库信息 用户名:javax.persistence.jdbc.user 密码:javax.persi ......

jpa的核心配置:persistent.xml内容

 

配置persistent-unit节点:持久化单元

<persistence-unit name="" transaction-type="resource_local"></persistence-unit>
  • name:持久化单元名称
  • transaction-type:事务处理方式
  1. jta:分布式事务管理(不同的表分散在不同数据库,一个数据库一个链接)
  2. resource_local:本地事务管理(多个表存在一个数据库中)

jpa的实现方式

<provider>org.hibernate.jpa.hibernatepersistenceprovider</provider>

 数据库信息

  • 用户名:javax.persistence.jdbc.user
  • 密码:javax.persistence.jdbc.password
  • 驱动:javax.persistence.jdbc.driver
  • 数据库地址:javax.persistence.jdbc.url
1 <properties>
2             <property name="javax.persistence.jdbc.user" value="root"></property>
3             <property name="javax.persistence.jdbc.password" value="123456"></property>
4             <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.driver"></property>
5             <property name="javax.persistence.jdbc.url" value="jdbc:mysql:///jpa"></property>
6         </properties>

 

配置jpa实现方(hibernate)的配置信息

  • 显示sql:false | true
<property name="hibernate.show.sql" value="true"></property>  
  •  自动创建数据库表:hibernate.hbm2ddl.auto
<property name="hibernate.hbm2ddl.auto" value="create"></property>

 create:程序运行时创建数据库表(如果有表,先删除表再创建)

update:程序运行时不会创建表(如果有表,不会创建表)

none:不会创建表

 

编写客户的实体类

 1 package cn.itcast.domain;
 2 
 3 import lombok.data;
 4 
 5 @data
 6 public class customer {
 7 
 8     private long custid;//客户的主键
 9     private string custname;//户名称
10     private string custsource;//客户来源
11     private string custlevel;//客户级别
12     private string custindustry;//客户所属行业
13     private string custphone;//客户的联系方式
14     private string custaddress;//容户地址
15 
16 }

 小知识(@data)添加lombok依赖,即可实现setter和getter方法

使用ipa注解配置映射关系

  • @entity:声明实体类
  • @table:配宣实体类和表的映关系

name:配置数据库表的名称

@entity
@table(name ="cst_customer")

 

  • @id:声明主键的配置
  • @genneratedvalue:配置主键的生成策略

genneratedidentity:自增

@id
@generatedvalue(strategy = generationtype.identity)
private long custid;//客户的主键
  • @column:配置属性和字段的映射关系

name属性:数据库表中字段名称

@column(name = "cust_name")
private string custname;//客户名称