热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

01入门案例

1、创建数据库表*创建客户表*CREATETABLEcst_customer(cust_idbigint(32)NOTNULLAUTO_INCREMENTCOMMENT客户编号(主

1、创建数据库表

/*创建客户表*/
CREATE TABLE cst_customer (
cust_id bigint(32) NOT NULL AUTO_INCREMENT COMMENT '客户编号(主键)',
cust_name varchar(32) NOT NULL COMMENT '客户名称(公司名称)',
cust_source varchar(32) DEFAULT NULL COMMENT '客户信息来源',
cust_industry varchar(32) DEFAULT NULL COMMENT '客户所属行业',
cust_level varchar(32) DEFAULT NULL COMMENT '客户级别',
cust_address varchar(128) DEFAULT NULL COMMENT '客户联系地址',
cust_phone varchar(64) DEFAULT NULL COMMENT '客户联系电话',
PRIMARY KEY (`cust_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

2、创建一个普通的maven工程

3、导入依赖坐标




junit
junit
4.13.2
test



org.hibernate
hibernate-entitymanager
6.0.0.Alpha7



org.hibernate
hibernate-c3p0
6.0.0.Alpha8



log4j
log4j
1.2.17



mysql
mysql-connector-java
8.0.27


4、配置jpa的核心配置文件

位置:配置到类路径下的一个叫做META-INF的文件夹下

命名:需要命名位persistence.xml





org.hibernate.jpa.HibernatePersistenceProvider













5、编写客户的实体类

public class Customer {
private Long custId;//客户的主键
private String custName;//客户的名称
private String custSource;//客户的来源
private String custLevel;//客户的级别
private String custIndustry;//客户所属行业
private String custPhone;//客户联系方式
private String custAddress;//客户地址
}

6、使用jpa注解配置映射关系

package com.study.pojo;
import javax.persistence.*;
/*
客户的实体类
配置映射关系
1、实体类和表的映射关系
@Entity:声明实体类
@Table:配置实体类和表的映射关系
name:配置数据库表的名称
2、实体类中的属性和表中字段的映射关系
*/
@Entity
@Table(name = "cst_customer")
public class Customer {
/*
@Id:声明主键的配置
@GeneratedValue:配置主键的生成策略
GenerationType.IDENTITY:自增
@Column:配置属性和字段的映射关系
name:数据库表中的字段的名称
【因为id是主键,所以要配置的比较多。对于其他属性都是普通属性,直接配置和数据库表中字段的映射关系即可】
*/
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "cust_id")
private Long custId;//客户的主键
@Column(name = "cust_name")
private String custName;//客户的名称
@Column(name = "cust_source")
private String custSource;//客户的来源
@Column(name = "cust_level")
private String custLevel;//客户的级别
@Column(name = "cust_industry")
private String custIndustry;//客户所属行业
@Column(name = "cust_phone")
private String custPhone;//客户联系方式
@Column(name = "cust_address")
private String custAddress;//客户地址

7、jpa操作步骤说明

/*
测试jpa的保存:
案例:保存一个客户到数据库中
jpa的操作步骤:
1、加载配置文件创建工厂(实体管理器工厂)对象
2、通过实体管理器工厂获取实体管理器
3、获取事务对象,开启事务
4、完成增删改查操作
5、提交事务(回滚事务)
6、释放资源
*/

8、完成客户保存

@Test
public void testSave(){
//1、加载配置文件创建工厂(实体管理器工厂)对象
EntityManagerFactory factory = Persistence.createEntityManagerFactory("myJpa");
//2、通过实体管理器工厂获取实体管理器
EntityManager em = factory.createEntityManager();
//3、获取事务对象,开启事务
EntityTransaction tx = em.getTransaction();//获取事务管理器对象
tx.begin();
//4、完成增删改查操作:保存一个客户到数据库中
Customer customer = new Customer();
customer.setCustName("戴庆贺");
customer.setCustIndustry("学生");
//保存
em.persist(customer);//保存操作
//5、提交事务
tx.commit();
//6、释放资源
em.close();
factory.close();
}

这是因为我们在配置文件中配置过


原文链接:https://www.cnblogs.com/morehair/p/15483607.html



推荐阅读
  • 深入理解:AJAX学习指南
    本文详细探讨了AJAX的基本概念、工作原理及其在现代Web开发中的应用,旨在为初学者提供全面的学习资料。 ... [详细]
  • Maven + Spring + MyBatis + MySQL 环境搭建与实例解析
    本文详细介绍如何使用MySQL数据库进行环境搭建,包括创建数据库表并插入示例数据。随后,逐步指导如何配置Maven项目,整合Spring框架与MyBatis,实现高效的数据访问。 ... [详细]
  • 处理Android EditText中数字输入与parseInt方法
    本文探讨了如何在Android应用中从EditText组件安全地获取并解析用户输入的数字,特别是用于设置端口号的情况。通过示例代码和异常处理策略,展示了有效的方法来避免因非法输入导致的应用崩溃。 ... [详细]
  • 本文详细介绍了Oracle 11g中的创建表空间的方法,以及如何设置客户端和服务端的基本配置,包括用户管理、环境变量配置等。 ... [详细]
  • 二维码的实现与应用
    本文介绍了二维码的基本概念、分类及其优缺点,并详细描述了如何使用Java编程语言结合第三方库(如ZXing和qrcode.jar)来实现二维码的生成与解析。 ... [详细]
  • 一、Advice执行顺序二、Advice在同一个Aspect中三、Advice在不同的Aspect中一、Advice执行顺序如果多个Advice和同一个JointPoint连接& ... [详细]
  • 问题描述现在,不管开发一个多大的系统(至少我现在的部门是这样的),都会带一个日志功能;在实际开发过程中 ... [详细]
  • 本文介绍了如何通过C#语言调用动态链接库(DLL)中的函数来实现IC卡的基本操作,包括初始化设备、设置密码模式、获取设备状态等,并详细展示了将TextBox中的数据写入IC卡的具体实现方法。 ... [详细]
  • 本文探讨了如何通过Service Locator模式来简化和优化在B/S架构中的服务命名访问,特别是对于需要频繁访问的服务,如JNDI和XMLNS。该模式通过缓存机制减少了重复查找的成本,并提供了对多种服务的统一访问接口。 ... [详细]
  • 长期从事ABAP开发工作的专业人士,在面对行业新趋势时,往往需要重新审视自己的发展方向。本文探讨了几位资深专家对ABAP未来走向的看法,以及开发者应如何调整技能以适应新的技术环境。 ... [详细]
  • 本文探讨了如何通过优化 DOM 操作来提升 JavaScript 的性能,包括使用 `createElement` 函数、动画元素、理解重绘事件及处理鼠标滚动事件等关键主题。 ... [详细]
  • 本文详细介绍了 `org.apache.tinkerpop.gremlin.structure.VertexProperty` 类中的 `key()` 方法,并提供了多个实际应用的代码示例。通过这些示例,读者可以更好地理解该方法在图数据库操作中的具体用途。 ... [详细]
  • 字符串中特定模式出现次数的计算方法
    本文详细探讨了如何高效地计算字符串中特定模式(如'pat')的出现次数,通过实例分析与算法解析,帮助读者掌握解决此类问题的方法。 ... [详细]
  • Irish budget airline Ryanair announced plans to significantly increase its route network from Frankfurt Airport, marking a direct challenge to Lufthansa, Germany's leading carrier. ... [详细]
  • 如何将955万数据表的17秒SQL查询优化至300毫秒
    本文详细介绍了通过优化SQL查询策略,成功将一张包含955万条记录的财务流水表的查询时间从17秒缩短至300毫秒的方法。文章不仅提供了具体的SQL优化技巧,还深入探讨了背后的数据库原理。 ... [详细]
author-avatar
mobiledu2502858945
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有