Spring Data Jpa入门程序

本文介绍如何使用Maven创建工程,并结合JPA进行数据库操作,包括配置pom.xml,设置数据库连接,创建实体类及测试类,实现数据添加功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、创建Maven工程,不用模板的jar工程

二、程序如下:在数据库中添加一条数据

1、配置pom.xml文件

    

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>cn.kgc</groupId>
<artifactId>Spring_Data-Jpa_Demo01</artifactId>
<version>1.0-SNAPSHOT</version>

<properties>
  <!---->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  <!---->
<project.hibernate.version>5.0.7.Final</project.hibernate.version>
<maven.coppiler.source>1.8</maven.coppiler.source>
<maven.coppiler.target>1.8</maven.coppiler.target>
</properties>
<dependencies>
  <!--junit测试包-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<!--hibernate 对jpa的支持-->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>${project.hibernate.version}</version>
</dependency>
  <!-hibernate连接池--->

<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-c3p0</artifactId>
<version>${project.hibernate.version}</version>
</dependency>
  <!--log4j日志-->

<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
  <!--mysql数据库连接-->

<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
</dependency>

</dependencies>
</project>


2、resources资源配置文件
  文件目录必须是META-INF/persistence.xml
  persistence.xml内容如下:
  persistence-unit持久化单元的意思
  name="myjpa"持久化单元的名字
  transaction-type="RESOURCE_LOCAL"事物类型和但数据库事物
    
  <?xml version="1.0" encoding="UTF-8"?>
  <persistence xmlns="http://java.sun.com/xml/ns/persistence" version="2.0">
   <!--配置持久化单元 在配置文件中至少有一个
   name 持久化单元的名称
  transaction-type 事物类型
  RESOURCE_LOCAL 单数据库的事物
  JTA 分布式事物 跨数据的事物 多个数据库的事物
   -->
   <persistence-unit name="myjpa" transaction-type="RESOURCE_LOCAL">
  <!--连接数据库-->
  <properties>
   <property name="javax.persistence.jdbc.user" value="root"/>
   <property name="javax.persistence.jdbc.password" value="root"/>
   <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
   <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/spring_data_9501"/>
   <!--配置hibernate的属性
          hibernate.show_sql表示在控制台是否打印sql语句
          value="true"表示打印 false表示不打印
          -->
   <property name="hibernate.show_sql" value="true"></property>
   <!--sql语句是否格式化
          hibernate.format_sql表示是否格式化
          value=“true"表示格式化,有一定格式打印,false表示不格式化,打印为一行
          -->
   <property name="hibernate.format_sql" value="true"/>
   <!--hibernate.hbm2ddl.auto是否自动创建数据库表
   value 可选值 create update none
   create 程序自动创建数据库表 如果表存在 先删除后创建
   update 程序自动创建数据库表 如果表存在 不创建
   none 不会创建表,如果有表可以执行,没表不能执行
   -->
   <property name="hibernate.hbm2ddl.auto" value="create"/>
   </properties>
   </persistence-unit>
  </persistence>

3、创建实体类
  @Entity,该注解表示告诉框架这是一个jpa的实体类,和数据库建立联系
  @Table(name="表名")该注解表示根据实体类创建表 ,表名为name的值。
  @GeneratedValue(strategy=GenerationType.IDENTITY),该注解表示配置主键的生成策略
  strategy
      GenerationType.IDENTITY表示自增 mysql数据库支持
      GenerationType.SEQUENCE表示序列 Oracle数据库支持
      GenerationType.BLE 是jpa提供的一种机制,通过一张数据库表的形式帮助我们完成主键自增
      GenerationType.AUTO 是由程序自动的选择主键生成策略
  @Id 该注解表示设置标的id字段
  @Column(namee="字段名"),该注解表示配置属性和表字段名的映射关系name的值为表字段名
    
package cn.kgc.pojo;

import javax.persistence.*;

//@Entity注解告诉spring Data jpa框架这是一个jpa的实体类
@Entity
//配置实体类和数据库表的映射关系
@Table(name = "Customer")
public class Customer {
//配置主键 和自增 GenerationType.IDENTITY为自增长
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Id
//配置字段和属性之间的关系
@Column(name = "id")
private int id;
@Column(name = "name")
private String name;
@Column(name = "sex")
private String sex;
@Column(name = "age")
private int age;
@Column(name = "addres")
private String addres;

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

public String getSex() {
return sex;
}

public void setSex(String sex) {
this.sex = sex;
}

public int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}

public String getAddres() {
return addres;
}

public void setAddres(String addres) {
this.addres = addres;
}

@Override
public String toString() {
return "Customer{" +
"id=" + id +
", name='" + name + '\'' +
", sex='" + sex + '\'' +
", age=" + age +
", addres='" + addres + '\'' +
'}';
}
}

4、测试类:
  
package cn.kgc.test;

import cn.kgc.pojo.Customer;
import org.junit.Test;

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

public class PjaTest {
@Test
public void firstTest() {
//通过 Persistence.createEntityManagerFactory创建EntityManagerFactory
EntityManagerFactory factory = Persistence.createEntityManagerFactory("myjpa");
//获得enyityManager工厂的对象,也就是获得一个连接
EntityManager entityManager = factory.createEntityManager();
//通过工厂对象获得EntityTransaction对象
EntityTransaction transaction = entityManager.getTransaction();
//开启事物
transaction.begin();
//创建实体类对象
Customer customer = new Customer();
customer.setName("刘高阳");
customer.setSex("男");
customer.setAge(18);
customer.setAddres("郑州市");
//5 使用Entitymanager 对象 的persist 方法向数据库添加数据
entityManager.persist(customer);
//提交事物
transaction.commit();
//关闭连接
entityManager.close();
factory.close();

}
}

转载于:https://www.cnblogs.com/liugaoyanging/p/11354056.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值