这篇教程主要参考的是https://www.petrikainulainen.net上的一篇文章,用自己的方式实现了一下。之所以特意将步骤帖出来,一方面温故而知新,另一方面也可以避免将来重复造轮子。
1、首先是新建一个最最普通的maven工程,quickstart版本的就可以。然后引入最基本的依赖:
![](https://img.haomeiwen.com/i6921212/289bae60d59fd109.png)
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 {
......
}
![](https://img.haomeiwen.com/i6921212/7cc7fcde27c48974.png)
在PersistenceContext中先把配置文件的值导入到private的字段中:
![](https://img.haomeiwen.com/i6921212/85850959c28e703e.png)
还是继续看PersistenceContext配置类,接下来我们要指定DataSource:
![](https://img.haomeiwen.com/i6921212/1ce7c272cd46511b.png)
然后指定EntityManagerFactoryBean来配置DataSource和Hibernate:
![](https://img.haomeiwen.com/i6921212/622b08b8cccc0fed.png)
最后配一下JPA的事务处理器就OK了:
![](https://img.haomeiwen.com/i6921212/48fa525f35519365.png)
3、PersistenceContext配置完后,创建一个Employee的实体类:
![](https://img.haomeiwen.com/i6921212/41e76de4e0024161.png)
4、创建EmployeeRepository类,该类里声明了我们对数据库CRUD的实现:
不过这里有一个坑,不能用@RepositoryDefinition(domainClass = EmployeeRepository.class, idClass = Integer.class)来注解,会报Not an managed Type这个错。
正确的方式是这样的:
![](https://img.haomeiwen.com/i6921212/8dd225d5b94cf10b.png)
5、创建Main方法,只有三行:
![](https://img.haomeiwen.com/i6921212/f72462ef330cd6d8.png)
6、我们的数据库和表是这样的:
![](https://img.haomeiwen.com/i6921212/34d8809814f25509.png)
7、接着运行Main函数,看看结果:
![](https://img.haomeiwen.com/i6921212/5efdb8cb8efa3797.png)
8、在Main函数中补充相应的insert和update方法:
![](https://img.haomeiwen.com/i6921212/d213f2e9ff79f8e1.png)
![](https://img.haomeiwen.com/i6921212/2306d20ba867b1d5.png)
至此SpringData一个最简单的查询、新增和修改的操作已经完成。最难的还是第一次,第一次成功后,后面无非就是相似的复制和黏贴了。自己动手实现一遍远胜于看十遍教程。今天就到这儿~
网友评论