zoukankan      html  css  js  c++  java
  • JPA学习01

    滴水穿石

    新建一个 JPA project , version选择2.0

     设置JPA的连接方式:

    JTA 是默认的连接方式,支持分布式连接,这里使用本地连接即可

    配置连接:

    这里是对应的

        <!-- 配置使用什么ORM产品作为JPA的实现 
                1.实际上配置的是 javax.persistence.spi.PersistenceProvider 接口的实现类
                2.若 JPA 项目中只有一个JPA的实现产品,则也可以不配置该节点
            -->
            <provider>org.hibernate.ejb.HibernatePersistence</provider>
    
            <properties>
                <!-- 连接数据库的基本信息 -->
                <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
                <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="root" />
    
                <!-- 配置JPA实现产品的基本属性 (这里使用Hibernate) -->
                <property name="hibenate.format_sql" value="true" />
                <property name="hibernate.show_sql" value="true" />
                <property name="hibernate.hbm2ddl.auto" value="update" />
    
            </properties>

    在持久化类的时候,要将持久化类添加到配置文件中

    <!-- 添加持久化类 -->
            <class>com.cfb.learn.test.Customer</class>
    @Table(name="JPA_CUSTOMER")
    @Entity
    public class Customer {
    
        private Integer id;
        
        private String name;
        
        private String email;
        
        private Integer age;
        
        
        @GeneratedValue(strategy=GenerationType.AUTO)
        @Id
        public Integer getId() {
            return id;
        }

    这里要注意的是

    1.实体类要持久化在配置文件中

    2.使用 @Entity 注解必须要指定 @Id, 一般标识注解都在get()方法上

    创建Main方法进行测试

    public static void main(String[] args) {
    
            //1.创建EntityManagerFactory
            String persistenceUnitName = "Jpa01";
            EntityManagerFactory enFactory = 
                    Persistence.createEntityManagerFactory(persistenceUnitName);
            //2.创建EntityManager
            EntityManager entityManager = enFactory.createEntityManager();
            //3.开启事务
            EntityTransaction transaction = entityManager.getTransaction();
            transaction.begin();
            //4.进行持久化操作
            Customer customer = new Customer();
            customer.setAge(18);
            customer.setEmail("222@cfb.com");
            customer.setName("hh");
            
            entityManager.persist(customer);
            //5.提交事务
            transaction.commit();
            //6.关闭EntityManager
            entityManager.close();
            //7.关闭EntityManagerFactory
            enFactory.close();
        }

    注意这里用到的是 

    entityManager.persist()方法

    —————————————————————————————————————————————————————————————————————————

    无论如何,心平气和

  • 相关阅读:
    缓存架构设计细节二三事
    数据库软件架构设计些什么
    100亿数据1万属性数据架构设计
    这才是真正的表扩展方案
    啥,又要为表增加一列属性?
    究竟啥才是互联网架构“高可用”
    究竟啥才是互联网架构“高并发”
    Linux用过的命令
    Xshell远程连接工具
    oracle分组取第一条
  • 原文地址:https://www.cnblogs.com/cfb513142804/p/7239065.html
Copyright © 2011-2022 走看看