首先给出项目结构目录
entity
package com.example.demo.entity;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity // This tells Hibernate to make a table out of this class
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String name;
private String email;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
userrepository
package com.example.demo.resp;
import com.example.demo.entity.User;
import org.springframework.data.repository.CrudRepository;
public interface UserRepository extends CrudRepository<User, Integer> {
}
UserService
public interface UserService {
/**
* 不用纠结这个业务逻辑 ,主要演示事物为啥没有生效
*/
void save(User user);
}
UserServiceImpl
package com.example.demo.service.impl;
import com.example.demo.entity.User;
import com.example.demo.resp.UserRepository;
import com.example.demo.service.UserService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import javax.transaction.Transactional;
@Transactional
@Service
public class UserServiceImpl implements UserService {
@Resource
private UserRepository userRepository;
@Override
public void save(User user) {
userRepository.save(user);
}
}
测试类如下
package com.example.demo.service.impl;
import com.example.demo.entity.User;
import com.example.demo.resp.UserRepository;
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;
@RunWith(SpringRunner.class)
@SpringBootTest
public class UserServiceImplTest {
@Autowired
private UserRepository userRepository;
@Test
public void save() {
User user =new User();
user.setName("ylhaha2");
user.setEmail("***.163.com2");
userRepository.save(user);
User user1 =new User();
user1.setName("ylhaha23");
user1.setEmail("***.163.com23");
userRepository.save(user1);
}
}
application.properties
spring.jpa.hibernate.ddl-auto=create
#The server time zone value
spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2b8
spring.datasource.username=root1
spring.datasource.password=123456
#cannot be null when 'hibernate.dialect' not set
spring.jpa.database-platform=org.hibernate.dialect.MySQL5Dialect
如遇见以下错误
#Access denied for user ‘root’@‘localhost’,通过mysql 客户端工具新建用户即可
没有设置方言与时区的话,请看application.properties中的注释