zoukankan      html  css  js  c++  java
  • JPA之helloWorld

    在 Eclipse 下创建 JPA 工程

    1、在eclipse上安装JPA插件(网上自行百度)

    2、new 一个Jpa工程

    3:点击下一步,下一步,第一次运行jpa插件会让我们装相关类库如下图,等到再次创建项目就不用安装了

    4:装好类库点击finish进入下图:点开src下的META-INFPEDE的persistence.xml配置文件, 其中source是查看配置信息的,connection是配置数据库连接信息的

    5:单机Connection配置数据库连接信息如下图

    配置好相关信息,点击Source可以看到我们配置的数据库连接信息已经加到配置文件中了!

    下面是一个测试小demo

    1 persistence.xml 文件配置

    <?xml version="1.0" encoding="UTF-8"?>
    <persistence version="2.0" 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">
    <persistence-unit name="jpa-2" transaction-type="RESOURCE_LOCAL">
    <!-- 配置使用什么ORM产品作为JPA的实现
    1.实际配置的是javaX.persistences.spi.PersistenceProvider 接口的实现类
    2.JPA项目中只有一个JPA的实现产品,则也可以不配置该产品。
    -->
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <!-- 添加持久化类 -->
    <class>com.guigu.jpa.helloword.Customer</class>
    <properties>
    <!-- 连接数据库的基本信息 -->
    <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
    <!--mysql:/// 第三个斜杠表示本地连接相当于localhost -->
    <property name="javax.persistence.jdbc.url" value="jdbc:mysql:///jpa"/>
    <property name="javax.persistence.jdbc.user" value="root"/>
    <property name="javax.persistence.jdbc.password" value="123456"/>

    <!-- 配置JPA实现产品的基本属性也就是配置hibernate的基本属性 -->
    <!-- 格式化sql -->
    <property name="hibernate.format_sql" value="true"/>
    <!-- 显示sql到控制台 -->
    <property name="hibernate.show_sql" value="true"/>
    <!-- 生成数据表的策略 -->
    <property name="hibernate.hbm2ddl.auto" value="update"/>
    </properties>
    </persistence-unit>
    </persistence>

    2:实体类

    import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.GenerationType;
    import javax.persistence.Id;
    import javax.persistence.Table;

    /**
    *数据库持久化类
    * @author z
    *
    */
    @Table(name="JPA_CUSTOMERS")//对应的数据库表名JPA_CUSTOMER默认情况下可以不写表名与持久化类名相同
    @Entity //表明这是一个持久化类
    public class Customer {

    private Integer id;
    private String lastName;
    private String email;
    private int age ;
    /**
    * 定义各数据列必须加在get方法上
    * @return
    */
    //定义主键,生成主键的策略AUTO自动的根据数据的类型生成主键
    @GeneratedValue(strategy=GenerationType.AUTO)
    @Id //定义数据列
    // @Column(name="ID")//定义数据库的列名如果与字段名一样可以省略
    public Integer getId() {
    return id;
    }
    public void setId(Integer id) {
    this.id = id;
    }

    @Column(name="LAST_NAME")
    public String getLastName() {
    return lastName;
    }
    public void setLastName(String lastName) {
    this.lastName = lastName;
    }
    public String getEmail() {
    return email;
    }
    public void setEmail(String email) {
    this.email = email;
    }
    public int getAge() {
    return age;
    }
    public void setAge(int age) {
    this.age = age;
    }

    }

    3:运行main方法

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

    public class Main {

    public static void main(String[] args) {
    //1. 创建EntitymanagerFactory
    String persistenceUnitName="jpa-2";
    EntityManagerFactory entityManagerFactory= Persistence.createEntityManagerFactory(persistenceUnitName);

    //2. 创建EntityManager
    EntityManager entityManager=entityManagerFactory.createEntityManager();
    //3. 开启事物
    EntityTransaction transaction=entityManager.getTransaction();
    transaction.begin();
    //4. 进行持久化操作
    Customer customer=new Customer();
    customer.setAge(12);
    customer.setEmail("318889659@qq.com");
    customer.setLastName("test");

    entityManager.persist(customer);
    //5. 提交事物
    transaction.commit();
    //6. 关闭EntityManager
    entityManager.close();
    //7. 关闭EntitymanagerFactory
    entityManagerFactory.close();
    }

    }

    此时我们观察数据库并自动创建一个表,且插入了数据!

    备注:最近工作比较忙,有时间我会把代码上传到gitHub上供大家参考

  • 相关阅读:
    ORACLE之常用FAQ V1.0二(构架系统) (1)
    如何快速杀去世占用过多本钱(CPU,内存)的数据库历程
    Eclipse快捷键大全
    (收藏)STL MAP 详解
    怎么在安装目录下创建一个文件
    MFC自绘属性的总结
    文件夹总结
    公元纪年转换为干支纪年
    重载运算符operator
    VS2005快捷键大全
  • 原文地址:https://www.cnblogs.com/a8457013/p/7744550.html
Copyright © 2011-2022 走看看