一 :加入依赖
二 :配置.properties文件
三 :代码实现
四 :启动配置
五 :总结
一:加入依赖
本依赖实在基础springBoot的依赖上添加
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency>
二 :application.properties 配置
spring.datasource.url=jdbc:mysql://localhost:3306/test?useSSL=false spring.datasource.username=root spring.datasource.password=123456 spring.datasource.tomcat.max-active=100 spring.datasource.tomcat.max-idle=200 spring.datasource.tomcat.initialSize=20 spring.jpa.database-platform=org.hibernate.dialect.MySQL5Dialect
三 代码:
实体类如下:
@Entity会被spring扫描并加载,
@Id注解在主键上
@Column name="name" 指该字段对应的数据库的字段名,如果相同就不需要定义。数据库下划线间隔和代码中的驼峰法 视为相同。
@Entity public class User implements Serializable { @Id @GeneratedValue //@ApiModelProperty(name = "ID", value = "用户ID", dataType = "Long") public long id; @Column(name = "name") //@ApiModelProperty(name = "name", value = "用户名", dataType = "String") public String name; //@ApiModelProperty(name = "name", value = "用户名", dataType = "String") public String phone; }
Repository如下:
@Repository @Transactional public interface UserRepos extends JpaRepository<User, Long> { /** * 通过用户名相等查询 * * @param name 用户名 * @return */ List<User> findByName(String name); /** * 通过名字like查询 * * @param name 用户名 * @return */ List<User> findByNameLike(String name); }
调用如下:
@Service public class UserServiceImple implements IUserService,Serializable { @Autowired private UserRepos userRepos; public List<User> JPA_findAll() { return userRepos.findAll(); }
启动配置
@EnableJpaRepositories({"test.repository"})//扫描repository @EntityScan("test.**")//扫描实体
@ComponentScan(basePackages ="test.**")//扫描bean
总结:
1.如果项目中添加了JPA的依赖,但是没有配置数据源,启动项目会抛出异常。
解决方式: 排除启动加载
@SpringBootApplication(exclude={DataSourceAutoConfiguration.class,HibernateJpaAutoConfiguration.class})//TODO 启动 排除JPA和DATASourc2. spring boot 默认扫描类是 在启动类的当前包和下级包,如果不在默认扫描范围内,则需要添加注解扫描对应路径。否则无法扫描到controller,service等一些bean。