JPA 学习篇(二)搭建最简单的应用环境

来源:互联网 发布:linux ftp 指定ip登录 编辑:程序博客网 时间:2024/05/20 21:21

单纯搭建一个JPA的项目很简单,下面笔者就搭建一个JPA 的javaSE项目。

【1. 新建一个JavaSE 项目】

【2. 引入项目相关jar 包】


【3. 创建persistence.xml 文件】JPA 规范要求在类路径META-INF 目录下放置persistence.xml 文件,文件名称是固定的

<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"><!-- 定义持久化单元, 指定名称:name, 并指定事务类型:transaction-type , 实体bean 的集合  事务类型:RESOURCE_LOCAL 本地事务       JTA: 全局事务,常用于应用服务器JBOSS,weblogic--><persistence-unit name="myJPA" transaction-type="RESOURCE_LOCAL"><!-- 指定javax.persistence.persistenceProvider 实现类 -->    <provider>org.hibernate.ejb.HibernatePersistence</provider><properties><!-- 数据库驱动名 --><property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/><!-- 指定连接数据库的url   --><property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/testjpa"/><!-- 指定连接数据库的方言 --><property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect" /><!-- 设置是否根据要求自动创建表 --><property name="hibernate.hbm2ddl.auto" value="update"/><!-- 指定用户名 和 密码 --><property name="hibernate.connection.username" value="root"/><property name="hibernate.connection.password" value="root"/><!-- 是否格式化输出查询语句--><property name="hibernate.show_sql" value="true" />  <property name="hibernate.format_sql" value="true"/></properties></persistence-unit></persistence>

【4. 创建log4j.xml 文件】 log4j.xml 文件必须是在类加载根路径下

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"><log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"><appender name="STDOUT" class="org.apache.log4j.ConsoleAppender"><layout class="org.apache.log4j.PatternLayout"><param name="ConversionPattern" value="%-5p %d{MM-dd HH:mm:ss,SSS} %m  (%F:%L) \n" /></layout></appender><logger name="java.sql"><level value="debug" /></logger><logger name="org.apache.ibatis"><level value="debug" /></logger><root><level value="debug" /><appender-ref ref="STDOUT" /></root></log4j:configuration>


【5. 测试】

【5.1 测试实体类:StudentEntity.java】

package org.zgf.jpa.entity;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 = "tb_student")public class StudentEntity {@Id@GeneratedValue(strategy = GenerationType.AUTO)@Column(name = "s_id")private Integer id;@Column(name = "s_name")private String name;@Column(name = "s_age")private int age;public StudentEntity() {}public StudentEntity(String name, int age) {this.name = name;this.age = age;}public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}@Overridepublic String toString() {return "StudentEntity [id=" + id + ", name=" + name + ", age=" + age + "]";}}

【5.2 测试类】
package org.zgf.jpa.entity;import javax.persistence.EntityManager;import javax.persistence.EntityManagerFactory;import javax.persistence.Persistence;public class TestStudentEntity {public static void main(String[] args) {StudentEntity student = new StudentEntity("zhangsan",20);//1. 创建EntityMangerFactory 工厂EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("myJPA");;//2. 创建EntityManager 对象EntityManager entityManager = entityManagerFactory.createEntityManager();//3. 获取事务,并开启事务entityManager.getTransaction().begin();//4. 进行持久化操作entityManager.persist(student);//5. 提交事务entityManager.getTransaction().commit();//6. 关闭entityManager对象 和 entityManagerFactory 对象entityManager.close();entityManagerFactory.close();}}

【项目包结构图】


【注意】

1. persistence.xml 必须在META-INF 目录下

2. log4j.xml 必须在类加载根目录下

3. JPA 可以自动创建表,但是不能自动创建数据库

4. 注解使用的包都是 javax.persitence.*;包下的,千万别导错包 。

5. 源代码下载:D_JPA_01_环境搭建.zip


0 0
原创粉丝点击