JPA(二)JPA配置

JPA(二)JPA配置一 依赖导入 以 maven 工程导入坐标为例 lt properties gt lt project build sourceEncodi gt UTF 8 lt project build sourceEncodi gt lt project hibernate version gt 5 0 7 Final lt project hibe

一、依赖导入,以maven 工程导入坐标为例

 <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.hibernate.version>5.0.7.Final</project.hibernate.version> </properties> <dependencies> <!-- junit --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.9</version> <scope>test</scope> </dependency> <!-- hibernate 对 jpa 的支持包 --> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-entitymanager</artifactId> <version>${project.hibernate.version}</version> </dependency> <!-- c3p0 --> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-c3p0</artifactId> <version>${project.hibernate.version}</version> </dependency> <!-- log 日志 --> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> <!-- Mysql and MariaDB --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.6</version> </dependency> </dependencies>

二、实体类

package com.it.jpa.domain; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Table; @Entity //声明实体类 @Table(name="cst_customer")//建立实体类和表的映射关系 public class Customer { 
    @Id//声明当前私有属性为主键 @GeneratedValue(strategy=GenerationType.IDENTITY) //配置主键的生成策略 @Column(name="cust_id") //指定和表中 cust_id 字段的映射关系 private Long custId; @Column(name="cust_name") //指定和表中 cust_name 字段的映射关系 private String custName; @Column(name="cust_source")//指定和表中 cust_source 字段的映射关系 private String custSource; @Column(name="cust_industry")//指定和表中 cust_industry 字段的映射关系 private String custIndustry; @Column(name="cust_level")//指定和表中 cust_level 字段的映射关系 private String custLevel; @Column(name="cust_address")//指定和表中 cust_address 字段的映射关系 private String custAddress; @Column(name="cust_phone")//指定和表中 cust_phone 字段的映射关系 private String custPhone; public Long getCustId() { return custId; } public void setCustId(Long custId) { this.custId = custId; } public String getCustName() { return custName; } public void setCustName(String custName) { this.custName = custName; } public String getCustSource() { return custSource; } public void setCustSource(String custSource) { this.custSource = custSource; } public String getCustIndustry() { return custIndustry; } public void setCustIndustry(String custIndustry) { this.custIndustry = custIndustry; } public String getCustLevel() { return custLevel; } public void setCustLevel(String custLevel) { this.custLevel = custLevel; } public String getCustAddress() { return custAddress; } public void setCustAddress(String custAddress) { this.custAddress = custAddress; } public String getCustPhone() { return custPhone; } public void setCustPhone(String custPhone) { this.custPhone = custPhone; } 
常用注解的说明 @Entity 作用:指定当前类是实体类。 @Table 作用:指定实体类和表之间的对应关系。 属性: name:指定数据库表的名称 @Id 作用:指定当前字段是主键。 @GeneratedValue 作用:指定主键的生成方式。。 属性: generator:指定引用 hibernate 中声明的主键策略 strategy :指定主键生成策略。 1)、AUTO 自动选择一个最适合底层数据库的主键生成策略。如MySQL会自动对应auto increment。这个是默认选项,即如果只写@GeneratedValue,等价于@GeneratedValue(strategy=GenerationType.AUTO)。   2)、IDENTITY 表自增长字段,Oracle不支持这种方式。   3)、SEQUENCE 通过序列产生主键,MySQL不支持这种方式。   4)、TABLE 通过表产生主键,框架借由表模拟序列产生主键,使用该策略可以使应用更易于数据库移植。不同的JPA实现商生成的表名是不同的,如 OpenJPA生成openjpa_sequence_table表,Hibernate生成一个hibernate_sequences表,而TopLink则生成sequence表。这些表都具有一个序列名和对应值两个字段,如SEQ_NAME和SEQ_COUNT。 @Column 作用:指定实体类属性和数据库表之间的对应关系 属性: name:指定数据库表的列名称。 unique:是否唯一 nullable:是否可以为空 inserttable:是否可以插入 updateable:是否可以更新 columnDefinition: 定义建表时创建此列的 DDL secondaryTable: 从表名。如果此列不建在主表上(默认建在主表),该属性定义该列所在 从表的名字

三、JPA 核心配置文件

<?xml version="1.0" encoding="UTF-8"?> <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"> <!-- 在 maven 工程的 resources 路径下创建一个名为 META-INF 的文件夹, 在此文件夹下创建一个名为persistence.xml 的配置文件。 注意:META-INF文件夹名称不能修改。persistence.xml 文件名称不能改。 --> <!-- 配置持久化单元 name: 持久化单元名称 transaction-type: 事务类型 RESOURCE_LOCAL: 本地事务管理 JTA:分布式事务管理 --> <persistence-unit name="myJpa" transaction-type="RESOURCE_LOCAL"> <!--配置 JPA 规范的服务提供商 --> <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider> <properties> <!-- 数据库驱动 --> <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" /> <!-- 数据库地址 --> <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/springdb" /> <!-- 数据库用户名 --> <property name="javax.persistence.jdbc.user" value="root" /> <!-- 数据库密码 --> <property name="javax.persistence.jdbc.password" value="root" /> <!--jpa 提供者的可选配置:我们的 JPA 规范的提供者为 hibernate,所以 jpa 的核心配 置中兼容 hibernate 的配 --> <!-- show_sql: 显示sql format_sql: 格式化sql hbm2ddl.auto: 自动创建|更新|验证数据库表结构 --> <property name="hibernate.show_sql" value="true" /> <property name="hibernate.format_sql" value="true" /> <property name="hibernate.hbm2ddl.auto" value="update" /> </properties> </persistence-unit> </persistence>
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/233469.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 2013年蓝桥杯真题[通俗易懂]

      1.某人年龄的立方是4位数,年龄的四次方是6位数,这10位数包含0到9,每个恰好出现一次,求他年龄多大publicclassOne{publicstaticvoidmain(String[]args){for(inti=10;i<100;i++){inti1=i*i*i;int…

    2022年4月12日
    42
  • dosbox基础使用[通俗易懂]

    dosbox运行程序1、mountc:d:\masm64把d盘masm64的内容挂在到c盘中2、c:进入c盘3、masmname.asm编译name的asm文件,后面要敲回车masmname.asm;编译name的asm文件,后面不用敲回车4、linkname连接name的文件,后面要敲回车linkname;连接name的文件,后面不用敲回车5、name运行name的文件dubug程序1、挂载、进入c盘步骤和前面一样2、debugname.exe3、输入命令

    2022年4月15日
    141
  • navicat 在线激活码(注册激活)

    (navicat 在线激活码)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月26日
    144
  • windows上安装redis并安装php5.6的redis扩展

    windows上安装redis并安装php5.6的redis扩展

    2021年10月16日
    56
  • 苹果屏蔽更新描述文件_屏蔽iPhone更新的iOS描述文件安装办法「建议收藏」

    屏蔽iOS更新分两种,第一种非越狱设备,只能系统在12.1以下的才能安装屏蔽描述文件safari浏览器输入ibeta.me回车,找到下图的屏蔽OTA更新,直接安装就行了第二种越狱设备,首先添加源https://xsf1re.github.io/repo/安装下图这个插件这个文件可以解除12.1以上设备描述文件失效不允许安装的问题,作者说写着兼容12.4-13.3,其他系统的老铁们自…

    2022年4月11日
    454
  • AvalonDock结合MVVM模式的应用[通俗易懂]

    AvalonDock结合MVVM模式的应用[通俗易懂]原始代码及文章参考:http://www.codeproject.com/Articles/239342/AvalonDock-and-MVVM环境:VS2010源码:http://files.cnblogs.com/jumahe/AvalonDockMVVMSampleCode.rar1、主界面ViewModel简介主界面由右侧两个Pane和一些要操作的文档(左侧窗体)组成。…

    2022年7月20日
    17

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号