- pom文件
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
- yml文件配置:
# 连接数据库设置
spring.datasource:
url: jdbc:mysql://localhost:3306/mydb?characterEncoding=utf8&useSSL=true
username: root
password: admin
driver-class-name: com.mysql.jdbc.Driver
# jpa设置
spring.jpa:
show-sql: true # 在控制台打印sql
database: mysql # 数据库
properties.hibernate.dialect: org.hibernate.dialect.MySQL5Dialect # 数据库方言
# 添加以下配置,否则jpa在做insert的动作的时候会把insert的dto的驼峰命名的字段添加下划线处理。比如:userName在jpainsert中会变成user_name导致报错
hibernate.naming.physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
dto代码:
// 映射表user和标注本类为一个实体类
@Entity
@Table(name = "user")
public class UserDto implements Serializable{
private static final long serialVersionUID = 1L;
//表明为主键id,不使用@Column注解标明的话。他也会默认使用你写好的属性与数据库字段对应。
@javax.persistence.Id
private String id;
private String userName;
private String userCode;
private String passWord;
private String phoneNumber;
private String valid;
private String sex;
private String role;
public String getUserName() {
return userName;
}
service层代码:
public interface UserService {
//按照id查询
public UserDto findUserById(String id);
// 添加一个用户
public void insertUserDto(UserDto dto);
}
@Service("userService")
public class UserServiceImpl implements UserService {
@Autowired
private UserDao userDao;
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
@Override
public UserDto findUserById(String id) {
return userDao.findUserDtoById(id);
}
@Transactional
@Override
public void insertUserDto(UserDto dto) {
//使用CrudRepository提供的方法
userDao.save(dto);
}
}
dao代码:
package com.example.demo.dao;
import com.example.demo.dto.UserDto;
import org.springframework.data.repository.CrudRepository;
//继承CrudRepository类以便使用提供好的简单的添加查询之类的方法。
// 比如在service层的insertUserDto方法就是直接使用的CrudRepository里的添加方法
//CrudRepository<UserDto, String>这里的UserDto对应实体类,String指的是UserDto对应的数据库表的主键类型是String。
public interface UserDao extends CrudRepository<UserDto, String> {
public UserDto findUserDtoById(String id);
}
test测试类:
import com.example.demo.dto.UserDto;
import com.example.demo.service.UserService;
import org.junit.Before;
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 redis.clients.jedis.Jedis;
@RunWith(SpringRunner.class)
@SpringBootTest
public class DemoApplicationTests {
private Jedis jedis;
@Autowired
private UserService userService;
public UserService getUserService() {
return userService;
}
public void setUserService(UserService userService) {
this.userService = userService;
}
@Test
public void contextLoads() {
jedis.set("Hello","xyb");
System.out.println(jedis.get("Hello"));
}
@Before
public void setup(){
jedis = new Jedis("192.168.111.200");
// jedis.auth("root");
}
@Test
public void findUserByIdTest(){
UserDto dto = new UserDto();
dto = userService.findUserById("1");
System.out.println(dto.toString());
}
@Test
public void insertUserDtoTest(){
UserDto user = new UserDto();
user.setId("3");
user.setPassWord("123456");
user.setUserName("admin");
user.setUserCode("xuyb");
user.setSex("1");
user.setRole("0");
user.setValid("1");
user.setPhoneNumber("15869874568");
userService.insertUserDto(user);
}
}