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 文件

posted on 2018-03-26 23:40  lshan  阅读(266)  评论(0编辑  收藏  举报