• jap_spring


    jar包

     

     applicationContent.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:tx="http://www.springframework.org/schema/tx"
        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
            http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
            http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd">
    
        <!-- 配置自动扫描的包 -->
        <context:component-scan base-package="com.icil"></context:component-scan>
    
        <!-- 配置 C3P0 数据源 -->
        <context:property-placeholder location="classpath:db.properties"/>
    
        <bean id="dataSource"
            class="com.mchange.v2.c3p0.ComboPooledDataSource">
            <property name="user" value="${jdbc.user}"></property>
            <property name="password" value="${jdbc.password}"></property>
            <property name="driverClass" value="${jdbc.driverClass}"></property>
            <property name="jdbcUrl" value="${jdbc.jdbcUrl}"></property>    
            
            <!-- 配置其他属性 -->
        </bean>
        
        <!-- 配置 EntityManagerFactory -->
        <bean id="entityManagerFactory"
            class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
            <property name="dataSource" ref="dataSource"></property>
            <!-- 配置 JPA 提供商的适配器. 可以通过内部 bean 的方式来配置 -->
            <property name="jpaVendorAdapter">
                <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"></bean>
            </property>    
            <!-- 配置实体类所在的包 -->
            <property name="packagesToScan" value="com.icil.entity"></property>
            <!-- 配置 JPA 的基本属性. 例如 JPA 实现产品的属性 -->
            <property name="jpaProperties">
                <props>
                    <prop key="hibernate.show_sql">true</prop>
                    <prop key="hibernate.format_sql">true</prop>
                    <prop key="hibernate.hbm2ddl.auto">update</prop>
                </props>
            </property>
        </bean>
        
        <!-- 配置 JPA 使用的事务管理器 -->
        <bean id="transactionManager"
            class="org.springframework.orm.jpa.JpaTransactionManager">
            <property name="entityManagerFactory" ref="entityManagerFactory"></property>    
        </bean>
        
        <!-- 配置支持基于注解是事务配置 -->
        <tx:annotation-driven transaction-manager="transactionManager"/>
    
    </beans>
    View Code

    db.properties

    jdbc.user=root
    jdbc.password=2323
    jdbc.driverClass=com.mysql.jdbc.Driver
    jdbc.jdbcUrl=jdbc:mysql:///jpa
    View Code

    enntity user

    package com.icil.entity;
    
    import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.Id;
    import javax.persistence.Table;
    @Table(name="tb_user")
    @Entity
    public class User {
    
        private Integer id;
        private String lastName;
    
        private String email;
        private int age;
        
        public User() {
            super();
        }
        public User(Integer id, String lastName, String email, int age) {
            super();
            this.id = id;
            this.lastName = lastName;
            this.email = email;
            this.age = age;
        }
        
        
        
        
        @GeneratedValue
        @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;
        }
    
        
        
        
    }
    View Code

    Dao

    package com.icil.dao;
    
    import javax.persistence.EntityManager;
    import javax.persistence.PersistenceContext;
    
    import org.springframework.stereotype.Repository;
    
    import com.icil.entity.User;
    
    @Repository
    public class UserDaoImpl implements UserDao {
        //获取一个与当前事务关联的EntityManager 对象,
        //并且通过@persistenceContent 注释标记成员变量
        @PersistenceContext
        private EntityManager  entityManager;
        
        @Override
        public void insert(User user) {
            entityManager.persist(user);
        }
    
    }
    View Code

    unity test

    package com.icil.test;
    
    import org.junit.Test;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    import com.icil.entity.User;
    import com.icil.service.UserService;
    import com.mchange.v2.c3p0.ComboPooledDataSource;
    
    public class jpaTest {
    
        private  ApplicationContext applicationContext=null;
          {
            applicationContext=    new  ClassPathXmlApplicationContext("applicationContent.xml");
            UserService userService = applicationContext.getBean(UserService.class);
            
        }
        
        @Test
        public void test1(){
            ComboPooledDataSource bean = applicationContext.getBean(ComboPooledDataSource.class);
            System.out.println(bean.getJdbcUrl());
            
        }
        
        //测试UserService
        @Test
        public void test2(){
            UserService userService = applicationContext.getBean(UserService.class);
            User user1 = new User(null, "AA", "aa@123.com", 21);
            User user2 = new User(null, "BB", "bb@123.com", 22);
            userService.insert(user1, user2);
            
        }
        
        
        
    }
    View Code

     整合maven 的pom 文件

  • 相关阅读:
    专家视角 | 小荷的 Oracle Database 18c 新特性快速一瞥
    java.lang.ClassCastException: com.xx.User cannot be cast to com.xx.User
    上传单个文件
    极速体验:Oracle 18c 下载和Scalable Sequence新特性
    开工大吉:Oracle 18c已经发布及新特性介绍
    CentOS7编译安装NodeJS
    .NET 同步与异步之锁(ReaderWriterLockSlim)(八)
    .NET 同步与异步之锁(ReaderWriterLockSlim)(八)
    .NET 同步与异步之锁(ReaderWriterLockSlim)(八)
    .NET 同步与异步之锁(ReaderWriterLockSlim)(八)
  • 原文地址:https://www.cnblogs.com/lshan/p/8654891.html
Copyright © 2020-2023  润新知