Springboot单元测试和Jdbctemplate的使用
来源:互联网 发布:nike跑步软件下载 编辑:程序博客网 时间:2024/06/01 09:14
1、搭建springboot项目,加入mysql和jdbc依赖
<!--mysql--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><!--jdbc--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency>
2、在application.yml中配置数据库连接
#数据库配置spring: datasource: driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://127.0.0.1:3306/db_test username: root password: root
mysql中student表数据:
3、单元测试
如果使用的springboot版本是1.4.0之前的,需要将@SpringBootTest改为@SpringApplicationConfiguration和@WebAppConfiguration
(1)查询
从数据库中查询id为2的数据
在使用jdbctemplate的queryForObject方法查询时,如果结果集为空或者结果集size大于2,将会抛出异常,如果想在结果集为空时,返回null,需要继承jdbctemplate重写该方法。
@RunWith(SpringJUnit4ClassRunner.class)@SpringBootTestpublic class JDBCTest { @Autowired private JdbcTemplate jdbcTemplate;//创建jdbctemplate对象,并使用spring的自动注入完成实例化 @Test public void selectTest1() { Student student; String sql = "select * from student where id=?";//sql语句 Object[] params = new Object[]{2};//设置参数 //使用queryForObject方法查询,当查询结果为空或者结果size大于2时,会抛出异常 student = (Student) jdbcTemplate.queryForObject(sql, params, new RowMapper() { //重写mapRow方法,resultSet为查询的结果集 @Override public Object mapRow(ResultSet resultSet, int i) throws SQLException { Student stu = new Student(); stu.setId(resultSet.getInt("id")); stu.setAge(resultSet.getInt("age")); stu.setName(resultSet.getString("name")); return stu; } }); System.out.println(student.getId()); System.out.println(student.getAge()); System.out.println(student.getName()); }}输出结果
219lysin
如果不想重写mapRow方法,可以使用execute方法,并创建一个PreparedStatementCallback匿名类,重写doInPrepareStatement方法,然后使用JDBC中的PreparedStatement执行查询。
@Test public void selectTest2() { Student student; String sql = "select * from student where id=?";//sql语句 //使用queryForObject方法查询,当查询结果为空或者结果size大于2时,会抛出异常 student = (Student) jdbcTemplate.execute(sql,new PreparedStatementCallback(){ @Override public Object doInPreparedStatement(PreparedStatement preparedStatement) throws SQLException, DataAccessException { preparedStatement.setInt(1,1);//设置第一个参数为1 ResultSet resultSet=preparedStatement.executeQuery();//执行查询 if(resultSet.next()){ Student stu = new Student(); stu.setId(resultSet.getInt("id")); stu.setAge(resultSet.getInt("age")); stu.setName(resultSet.getString("name")); return stu;//当查询结果有多条,也可以创建list返回 }else{ return null; } } }); if(student!=null){ System.out.println(student.getId()); System.out.println(student.getAge()); System.out.println(student.getName()); }else { System.out.println("未找到数据"); } }输出:
未找到数据
(2)查询
将id为2的name改为aaa
@Test public void updateTest(){ int result=0; String sql="update student set name=? where id=?"; Object[] params = new Object[]{"aaaaa",2};//设置参数 result=jdbcTemplate.update(sql,params);//返回受影响的行数 System.out.println(result); }输出结果:
1数据库记录:
+----+------+--------+| id | age | name |+----+------+--------+| 2 | 19 | aaaaa || 3 | 21 | wangwu |+----+------+--------+
(3)插入
@Test public void insertTest(){ int result=0; String sql="insert into student(id,age,name) values(?,?,?)"; Object[] params = new Object[]{4,21,"wangwu"};//设置参数 result=jdbcTemplate.update(sql,params);//通过update方法实现插入功能 System.out.println(result); }
+----+------+--------+| id | age | name |+----+------+--------+| 2 | 19 | aaaaa || 3 | 21 | wangwu || 4 | 21 | wangwu |+----+------+--------+(4)删除
删除id为2的数据
@Test public void deleteTest(){ int result=0; String sql="delete from student where id=?"; Object[] params = new Object[]{2};//设置参数 result=jdbcTemplate.update(sql,params);//通过update方法实现插入功能 System.out.println(result); }
+----+------+--------+| id | age | name |+----+------+--------+| 3 | 21 | wangwu || 4 | 21 | wangwu |+----+------+--------+
参考:
http://www.cnblogs.com/caoyc/p/5630622.html
http://blog.csdn.net/view1933/article/details/7579169
http://www.cnblogs.com/ilinuxer/p/6481228.html
http://blog.csdn.net/zknxx/article/details/53244255
http://n-meng.iteye.com/blog/1055870
阅读全文
0 0
- Springboot单元测试和Jdbctemplate的使用
- SpringBoot-04SpringBoot使用JdbcTemplate操作数据库
- SpringBoot使用JdbcTemplate的双数据源配置
- SpringBoot 使用JUnit 单元测试
- springboot学习(2)springboot使用JdbcTemplate完成对数据库的增删改查
- SpringBoot的Junit单元测试
- springboot- JdbcTemplate
- SpringBoot使用JdbcTemplate案例(学习笔记)
- springboot单元测试详解和实战
- springboot下使用JdbcTemplate和MongoTemplate链接多个mongodb源+sql源
- jdbctemplate的使用
- Spring的jdbcTemplate使用
- Spring的jdbcTemplate使用
- Spring的jdbcTemplate使用
- Spring的jdbcTemplate使用
- Spring的jdbcTemplate使用
- JdbcTemplate的使用
- Spring的jdbcTemplate使用
- 使用JS写一个计算器练习
- PHP发送邮箱激活验证
- 解决Error inflating class android.support.design.widget.FloatingActionButton
- 分析知识,解决问题,设计方案
- Codeforces 241D : Numbers
- Springboot单元测试和Jdbctemplate的使用
- hdu5517 二维线段树
- 数学建模--图论(一)
- Django和Flask这两个框架在设计上各方面
- 使用JS打任意行金字塔练习
- javaweb项目从svn检出变成java项目
- Vivado的安装程序没反应怎么办
- 原生js遮罩层
- js获取url中的中文参数出现乱码解决方法