您的位置:首页 > 编程语言 > Java开发

Spring Data 学习(1)—— HelloWorld

2016-05-02 09:45 519 查看
我还是先搜索了一下 Spring Data 官方网站:

Spring Data http://projects.spring.io/spring-data/

说明:本笔记为学习了尚硅谷佟刚老师的《Spring Data 视频教程》所做。在此向佟刚老师表示感谢。

项目结构:



1、添加依赖

(1)Spring 所有 jar 包

(2)hibernate 的 required

(3)jpa(在 Hibernate 下载的包中)

(4)加入 Spring Data 的 jar 包

spring-data-commons-1.6.2.RELEASE.jar

spring-data-jpa-1.4.2.RELEASE.jar

(5)c3p0(在 Hibernate 下载的包中)

(6)mysql

(7)slf4j (在后面代码运行的时候,控制台会提示你缺少该 jar 包)

2、编写 Spring 的核心配置文件

步骤:

(1)配置数据源(Druid 或者 c3p0 都行)

(2)配置 JPA 的 EntityManagerFactory

(3)配置事务管理器

(4)配置支持注解的事务

(5)配置 SpringData

具体步骤:

(1)配置数据源(Druid 或者 c3p0 都行)

<context:property-placeholder location="db.properties"/>

<!-- 1、配置数据源 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${jdbc.driverClass}"></property>
<property name="jdbcUrl" value="${jdbc.jdbcUrl}"></property>
<property name="user" value="${jdbc.username}"></property>
<property name="password" value="${jdbc.password}"></property>
<!-- 这里还可以配置 c3p0 的其它属性 -->
</bean>


(2)配置 JPA 的 EntityManagerFactory

说明:这里我们注释了二级缓存的相关配置。

<!-- 2、配置 JPA 的 EntityManagerFactory -->
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"></bean>
</property>
<!-- 实体类所在的包名 -->
<property name="packagesToScan" value="com.liwei.springdata"></property>
<property name="jpaProperties">
<props>
<!-- 二级缓存相关 -->
<!--
<prop key="hibernate.cache.region.factory_class">org.hibernate.cache.ehcache.EhCacheRegionFactory</prop>
<prop key="net.sf.ehcache.configurationResourceName">ehcache-hibernate.xml</prop>
-->
<!-- 生成的数据表的列的映射策略 -->
<prop key="hibernate.ejb.naming_strategy">org.hibernate.cfg.ImprovedNamingStrategy</prop>
<!-- hibernate 基本属性 -->
<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>
</bean>


(3)配置事务管理器

<!-- 3、配置事务管理器 -->
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory"></property>
</bean>


(4)配置支持注解的事务

<!-- 4、配置支持注解的事务 -->
<tx:annotation-driven transaction-manager="transactionManager"/>


(5)配置 SpringData

<!-- 5、配置 SpringData -->
<!-- 加入 jpa 的命名空间 -->
<jpa:repositories base-package="com.liwei.springdata.repository"
entity-manager-factory-ref="entityManagerFactory"></jpa:repositories>


3、编写实体类



4、编写接口类

public interface PersonRepository extends Repository<Person, Integer> {
// 根据 lastName 来获取对应的 Person
Person getByLastName(String lastName);
}




重要说明:这里我们不能使用别的方法名字。必须以 get 开头,by 是固定写法(拼接成方法名的时候首字母大写),表示一个连接词,lastName 是 Person 类的一个属性(拼接成方法名的时候首字母大写)。

5、编写测试方法

public class DataSourceTest {

private ApplicationContext ctx;
private PersonRepository personRepository;

{
ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
personRepository = ctx.getBean(PersonRepository.class);
}

@Test
public void testDataSource(){
DataSource dataSource = (DataSource) ctx.getBean("dataSource");
System.out.println(dataSource);
}

@Test
public void testJPA(){

}

@Test
public void testHelloWorldSpringData() {
System.out.println(personRepository.getClass().getName());

Person person = personRepository.getByLastName("liwei");
System.out.println(person);

}
}


控制台打印:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  SpringData