摘要:批量操作數(shù)據(jù)批量操作數(shù)據(jù)一共有兩種方法批量添加方法一男男方法二男男批量修改方法一男男方法二男男批量刪除同上
環(huán)境 版本信息
spring的版本為4.1.4(spring3我也用過,就配置信息略有不同,其用法還是一樣的)
需要在applicationContext.xml中配置以下信息
如果已經(jīng)在文件中配置了jdbctemplate的話還可以使用以下方法配置
當(dāng)然也可以使用最原始的方法(該方法也需要配置jdbctemplate)
NamedParameterJdbcTemplate namedParameterJdbcTemplate = new NamedParameterJdbcTemplate(jdbcTemplate);持久化類
本文章中的所有案例都是根據(jù)以下類來試驗的:
public class User { private int id; private String userName; private String sex; private String password; private String address; //省略 set/get }簡單操作數(shù)據(jù) 查詢 查詢一條數(shù)據(jù) 傳入?yún)?shù)是基本數(shù)據(jù)類型的map時
public User selectUserById(String id) { String sql = "SELECT id,username,sex,password,address FROM user WHERE id = :id"; Map傳入的參數(shù)是對象時paramMap = new HashMap (); paramMap.put("id", id); RowMapper rm = BeanPropertyRowMapper.newInstance(User.class); User user = namedParameterJdbcTemplate.queryForObject(sql, paramMap, rm); return user; }
public User queryByUser(User user) { String sql = "SELECT id,username,sex,password,address FROM user WHERE id = :id"; SqlParameterSource ps = new BeanPropertySqlParameterSource(user); RowMapper查詢多條數(shù)據(jù) 普通查詢rm = BeanPropertyRowMapper.newInstance(User.class); return namedParameterJdbcTemplate.queryForObject(sql, ps, rm); }
public List模糊查詢selectUser() { String sql = "SELECT id,username,sex,password,address FROM user"; Map paramMap = new HashMap (); RowMapper rm = BeanPropertyRowMapper.newInstance(User.class); List userList = namedParameterJdbcTemplate.query(sql, rm); return userList; }
public List添加數(shù)據(jù)selectUserLikeByName(String name) { //"%"空格:userName空格"%" 一定要有空格,不然會報錯 String sql = "SELECT id,username,sex,password,address FROM user WHERE username LIKE "%" :userName "%""; Map paramMap = new HashMap (); paramMap.put("userName", name); RowMapper rm = BeanPropertyRowMapper.newInstance(User.class); List users = namedParameterJdbcTemplate.query(sql, paramMap, rm); return users; }
public void insertUser(User user) { String sql = "INSERT INTO user (username, sex, password, address) VALUES (:username,:sex,:password,:address)"; Map修改數(shù)據(jù)paramMap = new HashMap (); paramMap.put("username", user.getUserName()); paramMap.put("sex", user.getSex()); paramMap.put("password", user.getPassword()); paramMap.put("address", user.getAddress()); namedParameterJdbcTemplate.update(sql, paramMap); }
public void updateUser(User user) { String sql = "UPDATE user SET username = :userName,sex = :sex,password=:password,address=:address WHERE id = :id;"; SqlParameterSource ps = new BeanPropertySqlParameterSource(user); namedParameterJdbcTemplate.update(sql, ps); }
可以與添加數(shù)據(jù)再進(jìn)行對比,這樣就能發(fā)現(xiàn)當(dāng)占位符比較多的情況下傳入對象時多么的方便
刪除數(shù)據(jù)public void deleteUser(String id) { String sql = "DELETE FROM user WHERE id = :id"; MapparamMap = new HashMap (); paramMap.put("id", id); namedParameterJdbcTemplate.update(sql, paramMap); }
看到此處可以發(fā)現(xiàn)添加,修改,刪除數(shù)據(jù)namedParameterJdbcTemplate提供的方法都是一樣的,都是update方法。
批量操作數(shù)據(jù)批量操作數(shù)據(jù)一共有兩種方法
批量添加 方法一public void batchInsert() { User chen = new User("chen", "男", "123456789", "fuzhou"); User alex = new User("alex", "男", "123456", "fuzhou"); List方法二userList = new ArrayList<>(); userList.add(chen); userList.add(alex); List
public void batchInsertUser() { User chen = new User("chen", "男", "123456789", "fuzhou"); User alex = new User("alex", "男", "123456", "fuzhou"); List批量修改 方法一userList = new ArrayList<>(); userList.add(chen); userList.add(alex); String sql = "INSERT INTO user (username, sex, password, address) VALUES (:username,:sex,:password,:address)"; SqlParameterSource[] batch = SqlParameterSourceUtils.createBatch(userList.toArray()); int[] updateCounts = namedParameterJdbcTemplate.batchUpdate(sql, batch); }
public void batchUpdate() { User chen = new User(12,"chen", "男", "111111111", "fuzhou"); User alex = new User(13,"alex", "男", "111111111", "fuzhou"); List方法二userList = new ArrayList<>(); userList.add(chen); userList.add(alex); List
public void batchUpdateUser() { User chen = new User(14,"chen", "男", "111111111", "fuzhou"); User alex = new User(15,"alex", "男", "111111111", "fuzhou"); List批量刪除userList = new ArrayList<>(); userList.add(chen); userList.add(alex); String sql = "UPDATE user SET username = :username,sex = :sex,password=:password,address=:address WHERE id = :id;"; SqlParameterSource[] batch = SqlParameterSourceUtils.createBatch(userList.toArray()); int[] updateCounts = namedParameterJdbcTemplate.batchUpdate(sql, batch); }
同上
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/77115.html
摘要:插入一條數(shù)據(jù)并返回自增主鍵我們可以通過自動綁定參數(shù)只需要屬性名稱為命名參數(shù)相同即可,同時我們也可以使用綁定參數(shù)。 為什么要使用 NamedParameterJdbcTemplate 簡單 NamedParameterJdbcTemplate 支持命名參數(shù),這是原生jdbc的一大缺點,因為jdbc是采用索引的方式設(shè)置參數(shù),在數(shù)據(jù)庫或者sql發(fā)現(xiàn)變化時我們需要修改代碼,并且這種維護(hù)...
摘要:關(guān)于的一些總結(jié)一個小問題的思考起因當(dāng)前項目中一直使用的都是,即這種用法考慮到確實有一定的局限性,在部分查詢中使用到了進(jìn)行復(fù)雜查詢操作由于本人年也曾使用過,古語溫故而知新,所以做此總結(jié)梳理。 關(guān)于 Spring JdbcTemplate 的一些總結(jié) 一個小問題的思考 起因 當(dāng)前項目中一直使用的都是 SpringData JPA ,即 public interface UserReposi...
摘要:安裝可以使用手動安裝命令行接口或如果你是用戶,可以使用或。有關(guān)全面的安裝說明,請參閱開始部分中的第節(jié),安裝。推斷抓取依賴項標(biāo)準(zhǔn)包含一個注解,它允許你聲明對第三方庫的依賴關(guān)系,這個有用的技術(shù)讓可以像或那樣下載,但不需要你使用構(gòu)建工具。 第VII章. Spring Boot CLI 如果你想快速開發(fā)Spring應(yīng)用程序,可以使用Spring Boot CLI命令行工具,它允許你運行Groo...
摘要:使用還是,根據(jù)個人喜好即可。如果錯誤頁面也需要使用模板引擎動態(tài)生成,那么放在下面的路徑。數(shù)據(jù)庫自動配置嵌入式數(shù)據(jù)庫如果類路徑中包含或的相應(yīng)包,那么就會自動配置這些嵌入式數(shù)據(jù)庫的實例和數(shù)據(jù)源。 本文參考自Spring Boot文檔。 Spring Boot 簡介 Spring框架功能很強大,但是就算是一個很簡單的項目,我們也要配置很多東西。因此就有了Spring Boot框架,它的作用很...
摘要:做這一領(lǐng)域的工作,有很多網(wǎng)站能夠起到輔助性的作用。再加上爬蟲相對于其他熱門方向來說,更容易學(xué)。也促使更多人會優(yōu)先選擇學(xué)習(xí)爬蟲。能夠代替手工完成手工無法完成的測試任務(wù),并且可以記錄相關(guān)數(shù)據(jù)及報告。 ...
閱讀 4306·2021-09-26 10:11
閱讀 2700·2021-07-28 00:37
閱讀 3244·2019-08-29 15:29
閱讀 1207·2019-08-29 15:23
閱讀 3154·2019-08-26 18:37
閱讀 2492·2019-08-26 10:37
閱讀 623·2019-08-23 17:04
閱讀 2372·2019-08-23 13:44