From 972c48d3f2f0f4912bcefd0f9a4e8698dde4bbf8 Mon Sep 17 00:00:00 2001 From: YunaiV <> Date: Sun, 3 Nov 2019 16:36:05 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=20jpa=20=E7=A4=BA=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lab-13/lab-13-jpa/pom.xml | 41 +++++++++++ .../springboot/lab13/jpa/Application.java | 7 ++ .../lab13/jpa/dataobject/UserDO.java | 73 +++++++++++++++++++ .../jpa/repository/UserRepository01.java | 12 +++ .../src/main/resources/application.yaml | 10 +++ .../jpa/repository/UserRepository01Test.java | 58 +++++++++++++++ lab-13/pom.xml | 19 +++++ pom.xml | 1 + 8 files changed, 221 insertions(+) create mode 100644 lab-13/lab-13-jpa/pom.xml create mode 100644 lab-13/lab-13-jpa/src/main/java/cn/iocoder/springboot/lab13/jpa/Application.java create mode 100644 lab-13/lab-13-jpa/src/main/java/cn/iocoder/springboot/lab13/jpa/dataobject/UserDO.java create mode 100644 lab-13/lab-13-jpa/src/main/java/cn/iocoder/springboot/lab13/jpa/repository/UserRepository01.java create mode 100644 lab-13/lab-13-jpa/src/main/resources/application.yaml create mode 100644 lab-13/lab-13-jpa/src/test/java/cn/iocoder/springboot/lab13/jpa/repository/UserRepository01Test.java create mode 100644 lab-13/pom.xml diff --git a/lab-13/lab-13-jpa/pom.xml b/lab-13/lab-13-jpa/pom.xml new file mode 100644 index 00000000..eea46688 --- /dev/null +++ b/lab-13/lab-13-jpa/pom.xml @@ -0,0 +1,41 @@ + + + + org.springframework.boot + spring-boot-starter-parent + 2.1.3.RELEASE + + + 4.0.0 + + lab-13-jpa + + + + + org.springframework.boot + spring-boot-starter-jdbc + + + mysql + mysql-connector-java + 5.1.48 + + + + + org.springframework.boot + spring-boot-starter-data-jpa + + + + + org.springframework.boot + spring-boot-starter-test + test + + + + diff --git a/lab-13/lab-13-jpa/src/main/java/cn/iocoder/springboot/lab13/jpa/Application.java b/lab-13/lab-13-jpa/src/main/java/cn/iocoder/springboot/lab13/jpa/Application.java new file mode 100644 index 00000000..c6995d4d --- /dev/null +++ b/lab-13/lab-13-jpa/src/main/java/cn/iocoder/springboot/lab13/jpa/Application.java @@ -0,0 +1,7 @@ +package cn.iocoder.springboot.lab13.jpa; + +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class Application { +} diff --git a/lab-13/lab-13-jpa/src/main/java/cn/iocoder/springboot/lab13/jpa/dataobject/UserDO.java b/lab-13/lab-13-jpa/src/main/java/cn/iocoder/springboot/lab13/jpa/dataobject/UserDO.java new file mode 100644 index 00000000..86d74abe --- /dev/null +++ b/lab-13/lab-13-jpa/src/main/java/cn/iocoder/springboot/lab13/jpa/dataobject/UserDO.java @@ -0,0 +1,73 @@ +package cn.iocoder.springboot.lab13.jpa.dataobject; + +import javax.persistence.*; +import java.util.Date; + +/** + * 用户 DO + */ +@Entity(name = "users") +public class UserDO { + + /** + * 用户编号 + */ + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY, // strategy 设置使用数据库主键自增策略; + generator = "JDBC") // generator 设置插入完成后,查询最后生成的 ID 填充到该属性中。 + private Integer id; + /** + * 账号 + */ + @Column(nullable = false) + private String username; + /** + * 密码(明文) + * + * ps:生产环境下,千万不要明文噢 + */ + @Column(nullable = false) + private String password; + /** + * 创建时间 + */ + @Column(name = "create_time", nullable = false) + private Date createTime; + + public Integer getId() { + return id; + } + + public UserDO setId(Integer id) { + this.id = id; + return this; + } + + public String getUsername() { + return username; + } + + public UserDO setUsername(String username) { + this.username = username; + return this; + } + + public String getPassword() { + return password; + } + + public UserDO setPassword(String password) { + this.password = password; + return this; + } + + public Date getCreateTime() { + return createTime; + } + + public UserDO setCreateTime(Date createTime) { + this.createTime = createTime; + return this; + } + +} diff --git a/lab-13/lab-13-jpa/src/main/java/cn/iocoder/springboot/lab13/jpa/repository/UserRepository01.java b/lab-13/lab-13-jpa/src/main/java/cn/iocoder/springboot/lab13/jpa/repository/UserRepository01.java new file mode 100644 index 00000000..a2b10465 --- /dev/null +++ b/lab-13/lab-13-jpa/src/main/java/cn/iocoder/springboot/lab13/jpa/repository/UserRepository01.java @@ -0,0 +1,12 @@ +package cn.iocoder.springboot.lab13.jpa.repository; + +import cn.iocoder.springboot.lab13.jpa.dataobject.UserDO; +import org.springframework.data.repository.CrudRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface UserRepository01 extends CrudRepository { + + + +} diff --git a/lab-13/lab-13-jpa/src/main/resources/application.yaml b/lab-13/lab-13-jpa/src/main/resources/application.yaml new file mode 100644 index 00000000..8b6f33f2 --- /dev/null +++ b/lab-13/lab-13-jpa/src/main/resources/application.yaml @@ -0,0 +1,10 @@ +spring: + # datasource 数据源配置内容 + datasource: + url: jdbc:mysql://47.112.193.81:3306/testb5f4?useSSL=false&useUnicode=true&characterEncoding=UTF-8 + driver-class-name: com.mysql.jdbc.Driver + username: testb5f4 + password: F4df4db0ed86@11 + # JPA 配置内容 + jpa: + show-sql: true # 打印 SQL 。生产环境,建议关闭 diff --git a/lab-13/lab-13-jpa/src/test/java/cn/iocoder/springboot/lab13/jpa/repository/UserRepository01Test.java b/lab-13/lab-13-jpa/src/test/java/cn/iocoder/springboot/lab13/jpa/repository/UserRepository01Test.java new file mode 100644 index 00000000..2a629fbd --- /dev/null +++ b/lab-13/lab-13-jpa/src/test/java/cn/iocoder/springboot/lab13/jpa/repository/UserRepository01Test.java @@ -0,0 +1,58 @@ +package cn.iocoder.springboot.lab13.jpa.repository; + +import cn.iocoder.springboot.lab13.jpa.dataobject.UserDO; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.util.Assert; + +import java.util.Arrays; +import java.util.Date; +import java.util.Optional; +import java.util.UUID; + +@RunWith(SpringRunner.class) +@SpringBootTest +public class UserRepository01Test { + + @Autowired + private UserRepository01 userRepository; + + @Test // 插入一条记录 + public void testSave() { + UserDO user = new UserDO().setUsername(UUID.randomUUID().toString()) + .setPassword("nicai").setCreateTime(new Date()); + userRepository.save(user); + } + + @Test // 更新一条记录 + public void testUpdate() { + // 先查询一条记录 + Optional userDO = userRepository.findById(1); + Assert.isTrue(userDO.isPresent(), "记录不能为空"); + // 更新一条记录 + UserDO updateUser = userDO.get(); + updateUser.setPassword("yudaoyuanma"); + userRepository.save(updateUser); + } + + @Test // 根据 ID 编号,删除一条记录 + public void testDelete() { + userRepository.deleteById(2); + } + + @Test // 根据 ID 编号,查询一条记录 + public void testSelectById() { + Optional userDO = userRepository.findById(1); + System.out.println(userDO.get()); + } + + @Test // 根据 ID 编号数组,查询多条记录 + public void testSelectByIds() { + Iterable users = userRepository.findAllById(Arrays.asList(1, 4)); + users.forEach(System.out::println); + } + +} diff --git a/lab-13/pom.xml b/lab-13/pom.xml new file mode 100644 index 00000000..71c68425 --- /dev/null +++ b/lab-13/pom.xml @@ -0,0 +1,19 @@ + + + + labs-parent + cn.iocoder.springboot.labs + 1.0-SNAPSHOT + + 4.0.0 + + lab-13 + pom + + lab-13-jpa + + + + diff --git a/pom.xml b/pom.xml index 9a3bb485..389b4a31 100644 --- a/pom.xml +++ b/pom.xml @@ -21,6 +21,7 @@ lab-10 lab-11 lab-12 + lab-13