标签:data- use instance 排序 环境 idle lap text java
传送门:Spring Data 学习 Spring Data 开发环境搭建
Spring Data是什么
可以极大的简化JPA的写法,可以在几乎不用写实现的情况下,实现对数据的访问和操作。除了CRUD外,还包括如分页、排序等一些常用的功能。
搭建过程
1.配置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" xmlns:jpa="http://www.springframework.org/schema/data/jpa" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.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 http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa-1.3.xsd" default-lazy-init="true"> <description>Spring公共配置</description> <!--数据库连接--> <context:property-placeholder location="classpath:/config/jdbc.properties"/> <!--扫描service包--> <context:component-scan base-package="com.wang.service"/> <!-- Jpa Entity Manager 配置 --> <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> <property name="dataSource" ref="dataSource"/> <property name="jpaVendorAdapter" ref="hibernateJpaVendorAdapter"/> <property name="packagesToScan" value="com.wang.entity"/> <property name="jpaProperties"> <props> <!-- 命名规则 My_NAME->MyName --> <prop key="hibernate.ejb.naming_strategy">org.hibernate.cfg.ImprovedNamingStrategy</prop> <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</prop> <prop key="hibernate.show_sql">true</prop> <prop key="hibernate.format_sql">true</prop> <prop key="hibernate.hbm2ddl.auto">update</prop> </props> </property> <property name="jpaDialect"> <bean class="org.springframework.orm.jpa.vendor.HibernateJpaDialect"/> </property> </bean> <bean id="hibernateJpaVendorAdapter" class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"/> <!-- Spring Data Jpa配置 --> <jpa:repositories base-package="com.wang.reposity" transaction-manager-ref="transactionManager" entity-manager-factory-ref="entityManagerFactory"/> <!-- Jpa 事务配置 --> <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"> <property name="entityManagerFactory" ref="entityManagerFactory"/> </bean> <!-- 使用annotation定义事务 --> <tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true"/> <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> <property name="dataSource" ref="dataSource"/> </bean> <!-- 数据源配置, 使用Tomcat JDBC连接池 --> <bean id="dataSource" class="org.apache.tomcat.jdbc.pool.DataSource" destroy-method="close"> <!-- Connection Info --> <property name="driverClassName" value="${jdbc.driver}"/> <property name="url" value="${jdbc.url}"/> <property name="username" value="${jdbc.username}"/> <property name="password" value="${jdbc.password}"/> <!-- Connection Pooling Info --> <property name="maxActive" value="${jdbc.pool.maxActive}"/> <property name="maxIdle" value="${jdbc.pool.maxIdle}"/> <property name="minIdle" value="0"/> <property name="defaultAutoCommit" value="true"/> </bean> </beans>
2.创建一个实体类
package com.wang.entity;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import java.util.Date;
@Entity
@Table(name="jpa_persons")
public class Person {
private Integer id;
private String lastName;
private String email;
private Date birth;
public Person(){}
@GeneratedValue // 按照数据库默认的方式进行自增
@Id
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
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 Date getBirth() {
return birth;
}
public void setBirth(Date birth) {
this.birth = birth;
}
@Override
public String toString() {
return "Person{" +
"id=" + id +
", lastName=‘" + lastName + ‘\‘‘ +
", email=‘" + email + ‘\‘‘ +
", birth=" + birth +
‘}‘;
}
}
3.编写Reposity接口类
package com.wang.reposity;
import com.wang.entity.Person;
import org.springframework.data.repository.Repository;
/**
* 操作person类的接口
* 需要继承自Repository
* 参1: 代表当前操作的实体类
* 参2: 代表实体类的主键类型
* @author dell
*
*Repository是springdata的核心接口,这个接口的实现规定了spring data操作数据库的规范--命名规范
*查询是以get或者是find或者是read开头
*/
public interface PersonRepository extends Repository<Person, Integer> {
Person getByLastName(String lastName);
}
4.测试
package com.wang.reposity;
import com.wang.entity.Person;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class TestSpringData {
private ApplicationContext context;
private PersonRepository personRepository;
@org.junit.Before //该注解含义在执行@Test注解之前先执行这个代码
public void Before(){
context=new ClassPathXmlApplicationContext("/spring/spring-context.xml");
personRepository=context.getBean(PersonRepository.class);
System.out.println("测试前");
}
@Test
public void testHellord(){
Person person = personRepository.getByLastName("wang");
System.out.println(person);
}
}
标签:data- use instance 排序 环境 idle lap text java
原文地址:https://www.cnblogs.com/wangxiayun/p/9337215.html