好多时候我们的项目已经很复杂了,但是我们会遇到这样的任务就是我们需要访问一下数据库做一些动作,但是我们又不想启动一个完整的项目,启动一个完整的项目去连接数据库的话,一个是速度很慢,另外一个是,万一里面有什么定时任务啥的执行了,就麻烦大了,我们的诉求其实很简单就是构造一个简单的不能再简单的能通过写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"));
}
}
}
代码结构
你可能要问我,这就结束了吗? 是的,结束了,就这么多代码,而且增删改查一样都不少,你看是不是简单的出奇