使用JdbcTemplate操作数据库(二十九)

使用JdbcTemplate操作数据库

Spring的JdbcTemplate是自动配置的,你可以直接使用@Autowired来注入到你自己的bean中来使用。

举例:我们在创建User表,包含属性nameage,下面来编写数据访问对象和单元测试用例。

  • 定义包含有插入、删除、查询的抽象接口UserService
    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 public  interface  UserService {        /**       * 新增一个用户       * @param name       * @param age       */      void  create(String name, Integer age);        /**       * 根据name删除一个用户高       * @param name       */      void  deleteByName(String name);        /**       * 获取用户总量       */      Integer getAllUsers();        /**       * 删除所有用户       */      void  deleteAllUsers();   }

     

  • 通过JdbcTemplate实现UserService中定义的数据访问操作
    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 @Service public  class  UserServiceImpl  implements  UserService {        @Autowired      private  JdbcTemplate jdbcTemplate;        @Override      public  void  create(String name, Integer age) {          jdbcTemplate.update( "insert into USER(NAME, AGE) values(?, ?)" , name, age);      }        @Override      public  void  deleteByName(String name) {          jdbcTemplate.update( "delete from USER where NAME = ?" , name);      }        @Override      public  Integer getAllUsers() {          return  jdbcTemplate.queryForObject( "select count(1) from USER" , Integer. class );      }        @Override      public  void  deleteAllUsers() {          jdbcTemplate.update( "delete from USER" );      } }

     

  • 创建对UserService的单元测试用例,通过创建、删除和查询来验证数据库操作的正确性。
    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 @RunWith (SpringJUnit4ClassRunner. class ) @SpringApplicationConfiguration (Application. class ) public  class  ApplicationTests {        @Autowired      private  UserService userSerivce;        @Before      public  void  setUp() {          // 准备,清空user表          userSerivce.deleteAllUsers();      }        @Test      public  void  test()  throws  Exception {          // 插入5个用户          userSerivce.create( "a" 1 );          userSerivce.create( "b" 2 );          userSerivce.create( "c" 3 );          userSerivce.create( "d" 4 );          userSerivce.create( "e" 5 );            // 查数据库,应该有5个用户          Assert.assertEquals( 5 , userSerivce.getAllUsers().intValue());            // 删除两个用户          userSerivce.deleteByName( "a" );          userSerivce.deleteByName( "e" );            // 查数据库,应该有5个用户          Assert.assertEquals( 3 , userSerivce.getAllUsers().intValue());        }   }

    上面介绍的JdbcTemplate只是最基本的几个操作,更多其他数据访问操作的使用请参考:JdbcTemplate API

    通过上面这个简单的例子,我们可以看到在Spring Boot下访问数据库的配置依然秉承了框架的初衷:简单。我们只需要在pom.xml中加入数据库依赖,再到application.properties中配置连接信息,不需要像Spring应用中创建JdbcTemplate的Bean,就可以直接在自己的对象中注入使用。