Spring boot and Spring Data JPA 超简单例子

本文介绍了一个基于Spring Boot的示例项目,包括项目构建、数据库配置、实体类定义、数据访问层实现、业务逻辑层实现和服务层测试等内容。通过具体代码展示了如何搭建Spring Boot应用,并与MySQL数据库交互。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值