好多時候我們的項目已經很複雜了,但是我們會遇到這樣的任務就是我們需要訪問一下數據庫做一些動作,但是我們又不想啓動一個完整的項目,啓動一個完整的項目去連接數據庫的話,一個是速度很慢,另外一個是,萬一裏面有什麼定時任務啥的執行了,就麻煩大了,我們的訴求其實很簡單就是構造一個簡單的不能再簡單的能通過寫java代碼來增刪改查訪問我們已經存在數據庫的一個mini版本的卡哇伊客戶端。
這樣做的好處顯而易見,我們可以僅僅運行一個單元測試就能完成我們的數據操作任務,而且任務絕對的獨立,整潔,不影響任何其他的東西。
於是我想到了spring boot和JdbcTemplate這天造地設的一對。事實證明,效果好的超乎想象。
直接上代碼,
建立一個簡單的springboot基礎程序,引入
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency>
在test文件夾下面建一個這樣的類
@SpringBootTest
class BootjdbcApplicationTests {
@Resource
private JdbcTemplate jdbcTemplate;
@Test
void contextLoads() {
}
//增加
@Test
public void add() {
String sql = "INSERT INTO `eladmin`.`sys_role` (`role_id`, `name`, `level`, `description`, `data_scope`, `create_by`, `update_by`, `create_time`, `update_time`) VALUES ('3', '測試用戶', '2', '-', '本級', NULL, 'admin', '2018-11-23 13:09:06', '2020-05-03 " +
"16:44:23');\n";
jdbcTemplate.execute(sql);
}
//刪除
@Test
public void del() {
String sql = "delete from sys_role where role_id=3";
jdbcTemplate.execute(sql);
}
//修改
@Test
public void modify() {
String sql = "update sys_role set name='普通用戶1' where role_id=2";
jdbcTemplate.execute(sql);
}
@Test
public void query() {
String sql = "select * from sys_menu";
List list = jdbcTemplate.queryForList(sql);
for (Object o : list) {
Map map = (Map) o;
System.out.println(map.get("menu_id"));
}
}
}
代碼結構
你可能要問我,這就結束了嗎? 是的,結束了,就這麼多代碼,而且增刪改查一樣都不少,你看是不是簡單的出奇