Spring对JPA提供的支持
来源:互联网 发布:java判断字符等于空格 编辑:程序博客网 时间:2024/05/18 02:14
JPA 本身可以工作,但是Spring呢 也对其提供了支持。
相对于JPA自己工作,Spring支持后代码量得到了简化,使得开发人员专注于关系自己的业务逻辑
首先将applicationContext.xml这个Spring的配置文件给贴上来,
内容是
<?xml version="1.0" encoding="UTF-8"?>
<!-- - DispatcherServlet application context for PetClinic's web tier. -->
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx" xmlns:jpa="http://www.springframework.org/schema/data/jpa"
xmlns="http://www.springframework.org/schema/beans"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<context:component-scan base-package="org.test" />
<tx:annotation-driven transaction-manager="transactionManager" />
<bean id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
</bean>
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>
</beans>
在看我们的Student.java这个POJO
-------------------------------------------------------------------------------------------------------------------------------
package org.test.domain;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name="student")
public class Student
{
private int id ;
private String name ;
public Student()
{
}
public Student(String name )
{
this.name = name ;
}
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
public int getId()
{
return id;
}
public void setId(int id)
{
this.id = id;
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
}
对于JPA的核心配置文件persistence.xml 还是不能省略的
内容如下
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="2.0">
<persistence-unit name="JPATest" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<class>org.test.domain.Student</class>
<properties>
<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
<property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/test"/>
<property name="hibernate.connection.username" value="root"/>
<property name="hibernate.connection.password" value=""/>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect"/>
<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.format_sql" value="true"/>
<property name="hibernate.use_sql_comments" value="false"/>
<property name="hibernate.hbm2ddl.auto" value="update"/>
</properties>
</persistence-unit>
</persistence>
-----------------------------------------------------------------------------------------------------------------------------------------------------------
先看Dao层的StudentDao.java
package org.test.dao;
import org.test.domain.Student;
public interface StudentDao
{
void store(Student student);
}
-----------------------------------------------------------------------------------------------------------------------------------------------------------
再看StudentDao的实现类 StudentDaoImpl.java
package org.test.dao;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.transaction.Transactional;
import org.springframework.stereotype.Repository;
import org.test.domain.Student;
@Repository("studentDao")
public class StudentDaoImpl implements StudentDao
{
@PersistenceContext
private EntityManager em ;
public EntityManager getEm()
{
return em;
}
public void setEm(EntityManager em)
{
this.em = em;
}
@Override
@Transactional
public void store(Student student)
{
em.persist(student);
}
}
-----------------------------------------------------------------------------------------------------------------------------------------------------------
再看Service层的 StudentService.java的实现
package org.test.servie;
import org.test.domain.Student;
public interface StudentService
{
void storeService(Student student);
}
-----------------------------------------------------------------------------------------------------------------------------------------------------------
接着是StudentServiceImpl.java的实现
package org.test.servie;
import javax.transaction.Transactional;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.test.dao.StudentDao;
import org.test.domain.Student;
@Service("studentService")
public class StudentServiceImpl implements StudentService
{
@Autowired
private StudentDao studentDao ;
@Transactional
@Override
public void storeService(Student student)
{
studentDao.store(student);
}
}
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
最后在写一个测试类
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.test.domain.Student;
import org.test.servie.StudentService;
public class Main
{
public static void main(String[] args)
{
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
StudentService studentService = ac.getBean("studentService",StudentService.class);
studentService.storeService(new Student("sunwukong"));
}
}
- Spring对JPA提供的支持
- Spring对 Quartz提供的支持
- Spring对IBatis提供了完善的内建支持
- Hibernate对JPA的支持
- Spring对JDBC提供支持----JdbcTemplate
- Spring对JDBC提供支持----对Hibernate集成支持
- Spring提供的DAO支持
- Hibernate对jpa annotation的支持
- spring提供的任务调度支持
- spring对Junit的支持、spring对Aop的支持
- hibernate对jpa的支持,自己实现AnnotationSessionFactoryBean,可以对jpa标签进行识别
- Spring对Hibernate的支持
- spring对DAO的支持
- Spring对JDBC的支持
- spring对AOP的支持
- Spring 对 JMS的支持
- Spring对EJB的支持
- Spring对国际化的支持
- Django 模板
- 7_6_K题 Jessica's Reading Problem题解[POJ 3320](尺取)
- 微信第三方登录
- Android开发中的java循环语句(简单小结)
- 快速排序简介
- Spring对JPA提供的支持
- linux课堂笔记5——vim
- 《OpenGL ES 2.0 Programming Guide》第12章“Framebuffer Objects”示例代码【C语言版】
- RxJava源码分析
- List 接口
- Stanford Prof. Li Feifei写给她学生的一封信
- 重构系列之重构的标志:《重构》代码的坏味道
- 316. Remove Duplicate Letters
- 贾人-贾诗