这篇文章我们看一下springboot整合jdbc,做一个小例子来讲解。
数据源配置
在
pom.xml
文件中导入
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring‐boot‐starter‐jdbc</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql‐connector‐java</artifactId>
<scope>runtime</scope>
</dependency>
然后在
application.properties
中配置数据库信息:
spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username=root
spring.datasource.password=0911SIHAI
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
使用JdbcTemplate操作数据库
这里我们以
user
进行对数据库的操作,做一个小例子
user代码:
/**
* @author 欧阳思海
* @date 2018/7/26 16:09
*/
public class User {
private String username;
private String password;
//getter setter
}
- 定义包含有插入、删除、查询的抽象接口UserService
/**
* @author 欧阳思海
* @date 2018/7/26 16:07
*/
public interface UserService {
/**
* 新增用户
* @param username
* @param password
*/
void add(String username, String password);
/**
* 根据name删除一个用户高
* @param userName
*/
void deleteByName(String userName);
/**
* 获取所有用户
*/
List<User> getAllUsers();
}
- 通过JdbcTemplate实现UserService中定义的数据访问操作
/**
* @author 欧阳思海
* @date 2018/7/26 16:11
*/
@Service
public class UserServiceImpl implements UserService {
@Autowired
private JdbcTemplate jdbcTemplate;
@Override
public void add(String username, String password) {
jdbcTemplate.update("insert into user values (?,?)",username,password);
}
@Override
public void deleteByName(String userName) {
jdbcTemplate.update("delete from user where username = ?",userName);
}
@Override
public List<User> getAllUsers() {
return jdbcTemplate.query("select * from user",
new RowMapper(){
@Override
public Object mapRow(ResultSet rs, int rowNum) throws SQLException {
User user = new User();
user.setUsername(rs.getString("username"));
user.setPassword(rs.getString("password"));
return user;
}
} );
}
}
- 对用户操作进行测试
/**
* @author 欧阳思海
* @date 2018/7/26 16:22
*/
@RunWith(SpringRunner.class)
@SpringBootTest
public class UserTest {
@Autowired
private UserService userService;
@Test
public void testAdd(){
userService.add("sihai","abc");
userService.add("yan","abc");
}
@Test
public void testQuery(){
List<User> users = userService.getAllUsers();
Assert.assertEquals(2, users.size());
}
}
这里只是一个简单的例子,但是基本的jdbc的操作是有了,具体的jdbcTemplate的使用可以查看官方文档
下面有使用的具体实例