Spring boot and Spring Data JPA 超简单例子

来源:互联网 发布:linux 显示当前目录 编辑:程序博客网 时间:2024/06/05 11:24

DEMO 结构


build.gradle

buildscript {ext {springBootVersion = '1.5.6.RELEASE'}repositories {mavenCentral()}dependencies {classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")}}apply plugin: 'java'apply plugin: 'eclipse'apply plugin: 'org.springframework.boot'version = '0.0.1-SNAPSHOT'sourceCompatibility = 1.8repositories {// mavenCentral()maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }}dependencies {compile('org.springframework.boot:spring-boot-starter-web')compile('org.springframework.boot:spring-boot-starter-data-jpa')compile group: 'mysql', name: 'mysql-connector-java', version: '5.1.41'compile group: 'com.alibaba', name: 'druid', version: '1.0.29'testCompile('org.springframework.boot:spring-boot-starter-test')}

UserDao.java

// 必须继承 Repository 及其子接口(CrudRepository, PagingAndSortingRepository 等), 各种查询方法才会起作用// Repository 为空接口,必须自己定义相关的方法public interface UserDao extends CrudRepository<User, Integer> {// 解析方法名创建查询public User findByName(String name);// 使用 @Query 创建查询@Query("select bean from User bean where bean.name like %?1%")public List<User> findUserByQuery(String name);}

User.java

就是一个简单的 java bean

@Entity@Table(name = "user")public class User {private Integer id;private String name;private String age;@Id@GeneratedValue(strategy = GenerationType.AUTO)public Integer getId() {return id;}....}

UserService.java

public interface UserService {public void save();public User findUser(String name);public List<User> findUserByQuery(String name);}

UserServiceImpl.java

@Servicepublic class UserServiceImpl implements UserService {@Overridepublic void save() {Integer i = new Random().nextInt(10) + 1;User user = new User();user.setName("maiyo" + i);user.setAge("" + i);dao.save(user);}@Overridepublic User findUser(String name) {return dao.findByName(name);}@Overridepublic List<User> findUserByQuery(String name) {return dao.findUserByQuery(name);}@Autowiredprivate UserDao dao;}

application.properties

使用 druid 数据源 ( Spring boot 自动配置的数据源是 org.apache.tomcat.jdbc.pool.DataSource )

新版 Mysql 需要指定 useSSL

spring.datasource.url=jdbc:mysql://127.0.0.1:3306/spring_boot_db?characterEncoding=UTF-8&useSSL=truespring.datasource.username=rootspring.datasource.password=123321abcspring.datasource.driver-class-name=com.mysql.jdbc.Driverspring.datasource.type=com.alibaba.druid.pool.DruidDataSource
ApplicationTests.java

使用 ApplicationTests 类进行单元测试

@RunWith(SpringRunner.class)@SpringBootTestpublic class ApplicationTests {@Autowiredprivate UserService userService;@Testpublic void saveUser() {userService.save();}@Testpublic void findUser() {User user = userService.findUser("maiyo");System.out.println(user.getAge());}@Testpublic void findUserByQuery() {List<User> users = userService.findUserByQuery("maiyo");for (User u : users) {System.out.println(u.getAge());}}}
OK.

原创粉丝点击