Skip to content

Commit 69aecd0

Browse files
committed
init springdata-jpa
1 parent 82fc7b8 commit 69aecd0

File tree

13 files changed

+374
-11
lines changed

13 files changed

+374
-11
lines changed

springboot-jpa/.gitignore

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
HELP.md
2+
/target/
3+
!.mvn/wrapper/maven-wrapper.jar
4+
5+
### STS ###
6+
.apt_generated
7+
.classpath
8+
.factorypath
9+
.project
10+
.settings
11+
.springBeans
12+
.sts4-cache
13+
14+
### IntelliJ IDEA ###
15+
.idea
16+
*.iws
17+
*.iml
18+
*.ipr
19+
20+
### NetBeans ###
21+
/nbproject/private/
22+
/nbbuild/
23+
/dist/
24+
/nbdist/
25+
/.nb-gradle/
26+
/build/
27+
28+
### VS Code ###
29+
.vscode/

springboot-jpa/pom.xml

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4+
<modelVersion>4.0.0</modelVersion>
5+
<parent>
6+
<groupId>org.springframework.boot</groupId>
7+
<artifactId>spring-boot-starter-parent</artifactId>
8+
<version>2.1.3.RELEASE</version>
9+
<relativePath/> <!-- lookup parent from repository -->
10+
</parent>
11+
<groupId>cn.tellsea</groupId>
12+
<artifactId>springboot-jpa</artifactId>
13+
<version>0.0.1-SNAPSHOT</version>
14+
<name>springboot-jpa</name>
15+
<description>Demo project for Spring Boot</description>
16+
17+
<properties>
18+
<java.version>1.8</java.version>
19+
</properties>
20+
21+
<dependencies>
22+
<dependency>
23+
<groupId>org.springframework.boot</groupId>
24+
<artifactId>spring-boot-starter-data-jpa</artifactId>
25+
</dependency>
26+
<dependency>
27+
<groupId>org.springframework.boot</groupId>
28+
<artifactId>spring-boot-starter-web</artifactId>
29+
</dependency>
30+
31+
<dependency>
32+
<groupId>mysql</groupId>
33+
<artifactId>mysql-connector-java</artifactId>
34+
<scope>runtime</scope>
35+
</dependency>
36+
<dependency>
37+
<groupId>org.projectlombok</groupId>
38+
<artifactId>lombok</artifactId>
39+
<optional>true</optional>
40+
</dependency>
41+
<dependency>
42+
<groupId>org.springframework.boot</groupId>
43+
<artifactId>spring-boot-starter-test</artifactId>
44+
<scope>test</scope>
45+
</dependency>
46+
47+
<dependency>
48+
<groupId>com.alibaba</groupId>
49+
<artifactId>druid-spring-boot-starter</artifactId>
50+
<version>1.1.14</version>
51+
</dependency>
52+
</dependencies>
53+
54+
<build>
55+
<plugins>
56+
<plugin>
57+
<groupId>org.springframework.boot</groupId>
58+
<artifactId>spring-boot-maven-plugin</artifactId>
59+
</plugin>
60+
</plugins>
61+
</build>
62+
63+
</project>

springboot-jpa/sql/springboot-jpa.sql

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
/*
2+
Navicat Premium Data Transfer
3+
4+
Source Server : localhost
5+
Source Server Type : MySQL
6+
Source Server Version : 50713
7+
Source Host : localhost:3306
8+
Source Schema : springboot-jpa
9+
10+
Target Server Type : MySQL
11+
Target Server Version : 50713
12+
File Encoding : 65001
13+
14+
Date: 17/04/2019 13:48:19
15+
*/
16+
17+
SET NAMES utf8mb4;
18+
SET FOREIGN_KEY_CHECKS = 0;
19+
20+
-- ----------------------------
21+
-- Table structure for tb_user
22+
-- ----------------------------
23+
DROP TABLE IF EXISTS `tb_user`;
24+
CREATE TABLE `tb_user` (
25+
`id` int(11) NOT NULL AUTO_INCREMENT,
26+
`user_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
27+
`user_password` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
28+
PRIMARY KEY (`id`) USING BTREE
29+
) ENGINE = MyISAM AUTO_INCREMENT = 5 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
30+
31+
-- ----------------------------
32+
-- Records of tb_user
33+
-- ----------------------------
34+
INSERT INTO `tb_user` VALUES (1, '小海绵', '654321');
35+
INSERT INTO `tb_user` VALUES (2, 'Susan', '123456');
36+
INSERT INTO `tb_user` VALUES (3, 'Bob', '123456');
37+
INSERT INTO `tb_user` VALUES (4, 'Lingda', '123456');
38+
39+
SET FOREIGN_KEY_CHECKS = 1;
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package cn.tellsea;
2+
3+
import org.springframework.boot.SpringApplication;
4+
import org.springframework.boot.autoconfigure.SpringBootApplication;
5+
6+
@SpringBootApplication
7+
public class SpringbootJpaApplication {
8+
9+
public static void main(String[] args) {
10+
SpringApplication.run(SpringbootJpaApplication.class, args);
11+
}
12+
13+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package cn.tellsea.bean;
2+
3+
import lombok.Data;
4+
5+
import javax.persistence.*;
6+
7+
@Data
8+
@Entity
9+
@Table(name = "tb_user")
10+
public class User {
11+
12+
@Id
13+
@GeneratedValue(strategy = GenerationType.IDENTITY)
14+
private Integer id;
15+
private String userName;
16+
private String userPassword;
17+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package cn.tellsea.repository;
2+
3+
import cn.tellsea.bean.User;
4+
import org.springframework.data.jpa.repository.JpaRepository;
5+
import org.springframework.data.jpa.repository.Query;
6+
7+
public interface UserRepository extends JpaRepository<User, Integer> {
8+
9+
User findByUserName(String username);
10+
11+
// 方式一:hql语句
12+
@Query(value = "select u from User u where u.userName = ?1")
13+
// 方式二:原生的sql
14+
// @Query(value = "select * from tb_user where user_name = ?1", nativeQuery = true)
15+
User finByName(String userName);
16+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package cn.tellsea.service;
2+
3+
import cn.tellsea.bean.User;
4+
import org.springframework.data.domain.Page;
5+
6+
import java.util.List;
7+
8+
public interface UserService {
9+
10+
void save(User user);
11+
12+
void update(User user);
13+
14+
void delete(Integer id);
15+
16+
User findById(Integer id);
17+
18+
List<User> findAll();
19+
20+
Page<User> listByPage(int pageCode, int pageSize);
21+
22+
User findByUserName(String userName);
23+
24+
User findByName(String userName);
25+
}
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
package cn.tellsea.service.impl;
2+
3+
import cn.tellsea.bean.User;
4+
import cn.tellsea.repository.UserRepository;
5+
import cn.tellsea.service.UserService;
6+
import org.springframework.beans.factory.annotation.Autowired;
7+
import org.springframework.data.domain.Page;
8+
import org.springframework.data.domain.PageRequest;
9+
import org.springframework.data.domain.Pageable;
10+
import org.springframework.stereotype.Service;
11+
12+
import java.util.List;
13+
14+
@Service
15+
public class UserServiceImpl implements UserService {
16+
17+
@Autowired
18+
private UserRepository userRepository;
19+
20+
@Override
21+
public void save(User user) {
22+
userRepository.save(user);
23+
}
24+
25+
@Override
26+
public void update(User user) {
27+
// 新增和更新调用的接口一样,区别就是更新的参数中有id
28+
userRepository.save(user);
29+
}
30+
31+
@Override
32+
public void delete(Integer id) {
33+
// 新增和更新调用的接口一样,区别就是更新的参数中有id
34+
userRepository.deleteById(id);
35+
}
36+
37+
@Override
38+
public User findById(Integer id) {
39+
// 新增和更新调用的接口一样,区别就是更新的参数中有id
40+
return userRepository.findById(id).get();
41+
}
42+
43+
@Override
44+
public List<User> findAll() {
45+
// 新增和更新调用的接口一样,区别就是更新的参数中有id
46+
return userRepository.findAll();
47+
}
48+
49+
@Override
50+
public Page<User> listByPage(int pageCode, int pageSize) {
51+
52+
// Sort sort = new Sort(Sort.Direction.ASC, "id"); 排序
53+
// Pageable pageable = new PageRequest(pageCode, pageSize, sort);
54+
Pageable pageable = PageRequest.of(pageCode, pageSize);
55+
return userRepository.findAll(pageable);
56+
}
57+
58+
@Override
59+
public User findByUserName(String userName) {
60+
return userRepository.findByUserName(userName);
61+
}
62+
63+
@Override
64+
public User findByName(String userName) {
65+
return userRepository.finByName(userName);
66+
}
67+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package cn.tellsea.web;
2+
3+
import org.springframework.stereotype.Controller;
4+
5+
@Controller
6+
public class UserController {
7+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
spring:
2+
datasource:
3+
type: com.alibaba.druid.pool.DruidDataSource
4+
druid:
5+
driver-class-name: com.mysql.jdbc.Driver
6+
url: jdbc:mysql://127.0.0.1:3306/springboot-jpa?useUnicode=true&characterEncoding=UTF-8
7+
username: root
8+
password: 123456
9+
jpa:
10+
show-sql: true
11+
hibernate:
12+
dialect: org.hibernate.dialect.MySQL5Dialect
13+
ddl-auto: update
Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
package cn.tellsea;
2+
3+
import cn.tellsea.bean.User;
4+
import cn.tellsea.service.UserService;
5+
import org.junit.Test;
6+
import org.junit.runner.RunWith;
7+
import org.springframework.beans.factory.annotation.Autowired;
8+
import org.springframework.boot.test.context.SpringBootTest;
9+
import org.springframework.data.domain.Page;
10+
import org.springframework.test.context.junit4.SpringRunner;
11+
12+
import java.util.List;
13+
14+
@RunWith(SpringRunner.class)
15+
@SpringBootTest
16+
public class SpringbootJpaApplicationTests {
17+
18+
@Autowired
19+
private UserService userService;
20+
21+
// 新增
22+
@Test
23+
public void save() {
24+
User user = new User();
25+
user.setUserName("Lingda");
26+
user.setUserPassword("123456");
27+
userService.save(user);
28+
}
29+
30+
// 更新
31+
@Test
32+
public void update() {
33+
User user = new User();
34+
user.setId(1);
35+
user.setUserName("小海绵");
36+
user.setUserPassword("654321");
37+
userService.update(user);
38+
}
39+
40+
// 删除
41+
@Test
42+
public void delete() {
43+
userService.delete(5);
44+
}
45+
46+
// 根据id查
47+
@Test
48+
public void get() {
49+
User user = userService.findById(1);
50+
System.out.println(user);
51+
}
52+
53+
// 查询所有
54+
@Test
55+
public void list() {
56+
List<User> list = userService.findAll();
57+
list.forEach(user -> System.out.println(user));
58+
}
59+
60+
// 分页查询
61+
@Test
62+
public void listByPage() {
63+
int pageCode = 0; // 当前页,注意这里默认第一页是0,坑爹
64+
int pageSize = 3; // 每页显示3条记录
65+
Page<User> page = userService.listByPage(pageCode, pageSize);
66+
System.out.println("总记录数=" + page.getTotalElements());
67+
System.out.println("总页数=" + page.getTotalPages());
68+
page.getContent().forEach(user -> System.out.println(user));
69+
}
70+
71+
// 自定义查询 -- 方法
72+
@Test
73+
public void findByUserName() {
74+
User user = userService.findByUserName("小海绵");
75+
System.out.println(user);
76+
}
77+
78+
// 自定义查询 -- 注解
79+
@Test
80+
public void findByName() {
81+
User user = userService.findByName("小海绵");
82+
System.out.println(user);
83+
}
84+
}

0 commit comments

Comments
 (0)