Spring JPA无需关心 数据库字段,项目启动会字段创建表,只会新增字段 不会删除
1 pom
<!--引入JPA的依赖关系-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
</dependencies>
2 entity
import java.util.Date;
import javax.persistence.*;
import org.springframework.format.annotation.DateTimeFormat;
@Entity
@Table(name="t_test")
@DynamicInsert//save忽略null
@DynamicUpdate//update忽略null
public class TestEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "t_id")
private Long id;
@Column(name = "t_name")
private String name;
@Column(name = "t_name1")
private String name1;
@Column(name = "t_time")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date time=new Date();
public String getName1() {
return name1;
}
public void setName1(String name1) {
this.name1 = name1;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Date getTime() {
return time;
}
public void setTime(Date time) {
this.time = time;
}
}
3 TestJPA
import java.io.Serializable;
import org.springframework.data.jpa.repository.*;
import com.game.entity.TestEntity;
public interface TestJPA extends JpaRepository<TestEntity,Long>,JpaSpecificationExecutor<TestEntity>,Serializable {
}
4自定义查询方法
// @Query(value = "SELECT * FROM t_users_thp WHERE t_users_thp.t_user_id=?", nativeQuery = true) // nativeQuery = true表示使用sql自己的方言查询,想查什么查什么, 按照字段数据类型返回就行了
// User findByUserId(String userId);
或者使用JPA提供的快捷查询
//相对于名字相等查询(其他字段同理),参数为name 命名为驼峰命名
User findById(String Id);