spring boot + druid + 封裝JdbcTemplate


本源碼內容如下:

  • spring boot項目
  • 用的druid連接池
  • druid監控頁面配置
  • 數據操作用spring jdbctemplate
  • 進一步封裝spring jdbctemplate支持用對象進行增刪改查
  • 封裝jdbctemplate的是單獨一個項目,可以打包到任務項目中使用

詳細介紹請查看 http://cxytiandi.com/blog/detail/3881

封裝部分代碼

public <T> T getByParams(Class<T> entityClass, String[] params, Object... values) {
    String[] fieldNames = BeanUtils.getFieldNames(entityClass, "");
    return doGetByParams(entityClass, fieldNames, params, values);
}

public <T> T getByParams(Class<T> entityClass, String[] fieldNames, String[] params, Object... values) {
    return doGetByParams(entityClass, fieldNames, params, values);
}

private <T> T doGetByParams(Class<T> entityClass, String[] fieldNames, String[] params, Object... values) {
    StringBuilder sql = getParamSql(entityClass, fieldNames, params, values);
    return get(entityClass, sql.toString(), values);
}

public <T> List<T> findByParams(Class<T> entityClass, String[] params, Object... values) {
    String[] fieldNames = BeanUtils.getFieldNames(entityClass, "");
    return doFindByParams(entityClass, fieldNames, params, values);
}

使用部分代碼

@Transactional
public void save() {
     Users u = new Users();
     u.setMobile("13112021223");
     //id自增不需要插入所以排除
     cxytiandiJdbcTemplate.save(Users.class, u, "id");
}

@Transactional
public void updateUser(Users user) {
    //根據ID修改用戶信息,只修改mobile字段
    cxytiandiJdbcTemplate.updateByContainsFields(Users.class, user, "id", "mobile");
}

@Transactional
public void deleteUser() {
     cxytiandiJdbcTemplate.deleteByParams(Users.class, new String[]{"id", "mobile"}, 2, "13858521245");
}

public List<Users> findByParams() {
    return cxytiandiJdbcTemplate.findByParams(Users.class, new String[]{"mobile"}, "13985854512");
}

public long count() {
    return cxytiandiJdbcTemplate.count(Users.class);
}

public long count(String mobile) {
    return cxytiandiJdbcTemplate.count(Users.class, "mobile", mobile);
}

public List<Users> queryAllUsers() {
    return cxytiandiJdbcTemplate.list(Users.class);
}

public List<Users> getUsersByPage(int page, int limit) {
    PageQueryParam param = new PageQueryParam(page, limit);
    return cxytiandiJdbcTemplate.listForPage(Users.class, param.getStart(), param.getLimit());
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM