persistence.xml配置
配置persistence-unite节点
<persistence-unit name="myJpa" transaction-type="RESOURCE_LOCAL">
<!--jpa的实现方式-->
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
<!--数据库信息-->
<!--可选配置:配置jpa实现方的配置信息-->
<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/test2?serverTimezone=Asia/Shanghai"/>
<!--配置jpa实现方(hibernate)的配置信息
显示sql
自动创建数据库表
-->
<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.hbm2dd1.auto" value="creat"/>
</properties>
</persistence-unit>
编写用户信息封装类
@Entity
@Table(name = "cst_customer")
public class Customer {
//声明主键配置 Generatedvalue主键的生成策略 @Colunm:配置属性和字段的映射关系
@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;
}
生成策略:
generationtype.IDENTITY 自增 支持自增长的mysql数据库
generationtype.SEQUENCE: 序列,oracle 底层数据库必须支持序列
generationtype.TABLE: jpa提供的一种机制,通过一张数据库表形式帮我们完成主键自增
generationtype.AUTO:由程序自动的帮助我们选择主键生成策略
@Entity //声明实体类
@Table: 配置实体类和表的映射关系
name:配置数据库表名称
@Entity
@Table(name = "cst_customer")
@Id //声明主键的配置
@Id
@GeneratrdValue //配置主键的生成策略
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column:配置属性和字段的映射关系
name:数据库中字段名称
@Column(name="cust_id")
/*测试jpa的保存
* 步骤
* 1.加载配置文件创建工厂对象
* 2.通过实体管理类工厂获取实体管理器
* 3.获取事务对象.开启事务
* 4.完成增删改查操作
* 5.提交事务
* 6.释放资源
* */
*
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.setCustIndustury("教育");
保存操作
em.persist(customer);
5.提交事务 关闭事物管理器 关闭工厂
tx.commit();
em.close();
factory.close();
jdk11貌似不支持
导入依赖
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-core</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>1.1.1</version>
</dependency>