SpringBoot整合SpringData JPA
springboots使用的版本是2.0.1,注意不同版本可能有差异,并不一定通用
添加Spring Data JPA的起步依赖:
<!-- springBoot JPA的起步依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency>
添加数据库驱动依赖:
<!-- MySQL连接驱动 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency>
在application.properties中配置数据库和jpa的相关属性:
#数据库连接信息 spring.datasource.driverClassName=com.mysql.jdbc.Driver spring.datasource.url=jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf8 spring.datasource.username=root spring.datasource.password=root #JPA配置 spring.jpa.database=MySql #自动创建数据库表 spring.jpa.hibernate.ddl-auto=update spring.jpa.show-sql=true
创建实体配置实体:
@Entity
@Table(name = "tb_user") public class User { // 主键 @Id @GeneratedValue private Long id; // 用户名 private String username; // 密码 private String password; // 姓名 private String name; /************ get/set方法 ************/ }
编写dao接口:
public interface UserDao extends JpaRepository<User, Long>, JpaSpecificationExecutor<User> { }
编写测试类:
@RunWith(SpringRunner.class) @SpringBootTest(classes = Application.class) public class JpaTest { @Autowired private UserDao userDao; @Test public void test(){ List<User> users = userDao.findAll(); for (User user : users) { System.out.println(user); } } }
注意:如果是jdk9,执行报错如下:
原因:jdk缺少相应的jar
解决方案:手动导入对应的maven坐标,如下:
<!--jdk9需要导入如下坐标--> <dependency> <groupId>javax.xml.bind</groupId> <artifactId>jaxb-api</artifactId> <version>2.3.0</version> </dependency>