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.8
repositories {
// 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
@Service
public class UserServiceImpl implements UserService {
@Override
public void save() {
Integer i = new Random().nextInt(10) + 1;
User user = new User();
user.setName("maiyo" + i);
user.setAge("" + i);
dao.save(user);
}
@Override
public User findUser(String name) {
return dao.findByName(name);
}
@Override
public List<User> findUserByQuery(String name) {
return dao.findUserByQuery(name);
}
@Autowired
private 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=true
spring.datasource.username=root
spring.datasource.password=123321abc
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
ApplicationTests.java使用 ApplicationTests 类进行单元测试
@RunWith(SpringRunner.class)
@SpringBootTest
public class ApplicationTests {
@Autowired
private UserService userService;
@Test
public void saveUser() {
userService.save();
}
@Test
public void findUser() {
User user = userService.findUser("maiyo");
System.out.println(user.getAge());
}
@Test
public void findUserByQuery() {
List<User> users = userService.findUserByQuery("maiyo");
for (User u : users) {
System.out.println(u.getAge());
}
}
}
OK.