1,添加依赖jar包,注意spring和hibernate版本对应
<dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-jpa</artifactId> <version>1.10.1.RELEASE</version> </dependency> <!-- hibernate --> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>${hibernate.version}</version> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-ehcache</artifactId> <version>${hibernate.version}</version> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-entitymanager</artifactId> <version>${hibernate.version}</version> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-c3p0</artifactId> <version>${hibernate.version}</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.9</version> </dependency>2,新建persistenceConfig管理持久层bean
@Configuration @EnableJpaRepositories({"com.zuixinkeji.smart_travel.dao"}) public class PersistentConfig { @Value("${driver}") private String driver; @Value("${url}") private String url; @Value("${username}") private String username; @Value("${password}") private String password; //配置数据源 public BasicDataSource dataSource(){ BasicDataSource source=new BasicDataSource(); source.setDriverClassName(driver); source.setUrl(url); source.setUsername(username); source.setPassword(password); return source; } //配置 JPA 的 EntityManagerFactory @Bean public LocalContainerEntityManagerFactoryBean entityManagerFactory() { LocalContainerEntityManagerFactoryBean em = new LocalContainerEntityManagerFactoryBean(); em.setDataSource(dataSource()); em.setJpaVendorAdapter(jpaVendorAdapter()); em.setPackagesToScan("com.zuixinkeji.smart_travel.domain.entity"); Map<String, Object> jpaProperties = new HashMap<String, Object>(); jpaProperties.put("hibernate.ejb.naming_strategy", "org.hibernate.cfg.ImprovedNamingStrategy"); jpaProperties.put("hibernate.show_sql", true); jpaProperties.put("hibernate.hbm2ddl.auto", "update"); em.setJpaPropertyMap(jpaProperties); return em; } //指定实现JPA的适配器 public HibernateJpaVendorAdapter jpaVendorAdapter() { HibernateJpaVendorAdapter bean = new HibernateJpaVendorAdapter(); bean.setDatabasePlatform("org.hibernate.dialect.MySQLDialect"); return bean; } //配置事务 @Bean public JpaTransactionManager transactionManager() { JpaTransactionManager jpaTransactionManager = new JpaTransactionManager(); jpaTransactionManager.setEntityManagerFactory(entityManagerFactory().getObject()); return jpaTransactionManager; } }
3,给实体类添加注解
@Entity public class User implements Serializable{ private static final long serialVersionUID = 1L; @Id private Integer id; private String username; private String password; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }
4,给dao层继承Repository
public interface UserDao extends Repository<User, Integer> { User findByUsername(String username); User findById (Integer id); }
注意jpa的方法名查询不能使用select开头