美文网首页JPA 菜鸟教程SpringBoot极简教程 · Spring Boot
用Annotation而非xml文件实现Sping Data J

用Annotation而非xml文件实现Sping Data J

作者: 斯盖丸_沈天一 | 来源:发表于2017-12-02 19:17 被阅读42次

这篇教程主要参考的是https://www.petrikainulainen.net上的一篇文章,用自己的方式实现了一下。之所以特意将步骤帖出来,一方面温故而知新,另一方面也可以避免将来重复造轮子。

1、首先是新建一个最最普通的maven工程,quickstart版本的就可以。然后引入最基本的依赖:

最少的依赖只要四个,不能再少了

2、由于我们是使用注解实现配置,所以就新建一个PersistenceContext.java来代替通常的application-context.xml:

@Configuration //声明配置类

@ComponentScan(basePackages ="com.em.repository") //将包下的类生成Bean

@PropertySource("application.properties") //扫描配置文件,配置文件主要是连接数据库的信息以及Hibernate的相关配置。不过要注意一点,IDEA中配置文件前是不要加“classpath:”的,而Eclipse中则是需要。

@EnableTransactionManagement //开启SpringData的事务控制

@EnableJpaRepositories(basePackages ="com.em.repository", entityManagerFactoryRef ="entityManagerFactoryBean") //将指定包下的类作为SpringData的实现类,注意entityManagerFactoryRef ="entityManagerFactoryBean"一定要类后面的Bean name一一对应

public classPersistenceContext {

    ......

}

application.properties配置文件的内容

在PersistenceContext中先把配置文件的值导入到private的字段中:

注意这里也可以用Environment来实现,代码会更精简

还是继续看PersistenceContext配置类,接下来我们要指定DataSource:

然后指定EntityManagerFactoryBean来配置DataSource和Hibernate:

注意这里的entityManagerFactoryBean一定要和类名前EnableJpaRepositories注解的地方一致。

最后配一下JPA的事务处理器就OK了:

3、PersistenceContext配置完后,创建一个Employee的实体类:

4、创建EmployeeRepository类,该类里声明了我们对数据库CRUD的实现:

不过这里有一个坑,不能用@RepositoryDefinition(domainClass = EmployeeRepository.class, idClass = Integer.class)来注解,会报Not an managed Type这个错。

正确的方式是这样的:

注意要照着红框的地方写

5、创建Main方法,只有三行:

6、我们的数据库和表是这样的:

7、接着运行Main函数,看看结果:

结果正确

8、在Main函数中补充相应的insert和update方法:

数据库已经成功插入和变更

至此SpringData一个最简单的查询、新增和修改的操作已经完成。最难的还是第一次,第一次成功后,后面无非就是相似的复制和黏贴了。自己动手实现一遍远胜于看十遍教程。今天就到这儿~

相关文章

网友评论

    本文标题:用Annotation而非xml文件实现Sping Data J

    本文链接:https://www.haomeiwen.com/subject/kaznbxtx.html