JPA的MAVEN配置使用以及常用的数据库操作
第一步,配置完Maven之后进行导包操作
<!-- jpa 依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
导完包之后进行第二步 resources中添加application.properties添加如下配置
<!-- 配置 Springboot 依赖-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.6.RELEASE</version>
</parent>
<dependencies>
<!-- 配置 SpringMVC 依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- thymeleaf 依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<!-- <!– mybatis 依赖 –>-->
<!-- <dependency>-->
<!-- <groupId>org.mybatis.spring.boot</groupId>-->
<!-- <artifactId>mybatis-spring-boot-starter</artifactId>-->
<!-- <version>1.1.1</version>-->
<!-- </dependency>-->
<!--mybatis plus 依赖配置-->
<!-- mybatis plus 依赖-->
<!-- <dependency>-->
<!-- <groupId>com.baomidou</groupId>-->
<!-- <artifactId>mybatis-plus-boot-starter</artifactId>-->
<!-- <version>2.2.0</version>-->
<!-- </dependency>-->
<!-- mysql 依赖 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.45</version>
</dependency>
<!-- 引入 lombok 依赖 -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!-- jpa 依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
</dependencies>
</project>
里面的配置根据自己的导入的包进行配置其中 jpa的依赖是必要的 ,数据库的依赖也是必要的以上的配置是在SSM的基础上进行的依赖注入。
配置完了之后就可以进行数据库的操作了
这里要注意几点。
1.实体类中要加入@Entity注解当类名跟数据库名不一样的时候要加 @Table(name = “数据库的名称”)
-
//主键在主键上加入此注解 @Id //主键生产策略(自动增长),主键自动增长 @GeneratedValue(strategy = GenerationType.IDENTITY) //不为空 @NonNull
其他注意事项如下:照葫芦画瓢
package com.web.entity;
import lombok.*;
import javax.persistence.*;
@Data //自动生产无参构造 get set
@NoArgsConstructor //无参构造
@AllArgsConstructor //所有参数构造
@RequiredArgsConstructor //部分参数构造
@Entity //实体类
@Table(name = "t_book") //表明
public class Book {
@Id //主键
@GeneratedValue(strategy = GenerationType.IDENTITY) //主键生产策略(自动增长)
@NonNull
private Integer bid;
@Column(name = "bname",length = 50) //非主键字段
private String bname;
@Column(name = "type",nullable = false,length = 2)
private String type;
@Column(name = "price")
private Double price;
@Column(name = "num")
private Integer num;
}
一些常用的数据库dao类操作
package com.web.dao;
import com.web.entity.Emp;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import java.util.List;
public interface EmpDAO extends JpaRepository<Emp,Integer> {
//select * from emp where ename like ?
public List<Emp> findAllByEnameLike(String ename);
//select * from emp where ename like ? and sal>?
public List<Emp> findAllByEnameLikeAndSalGreaterTha();
//select * from emp order by empno
//public List<Emp> findByEOrderByEmpno();
@Query("from Emp order by empno")
public List<Emp> selectEmpOrderByEmpno();
//select * from emp where empno=? and ename=?
public List<Emp> findByEmpnoEqualsAndEnameEquals(Integer empno,String ename);
//select * from emp
@Query("from Emp")
public List<Emp> selectEmp();
@Query("from Emp where empno=?1")
public List<Emp> selectEmpByEmpno(Integer empno);
@Query("from Emp where empno=?1 and ename=?2")
public List<Emp> selectEmpByEmpnoAndEname(Integer empno,String ename);
@Query("from Emp where job=:job")
public List<Emp> selectEmpByJob(String job);
}
其方法的意思在上面的注释中均有写,可以根据自己的数据库的实际情况进行数据库的编写操作