最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring JDBC的使用方法詳解

 更新時(shí)間:2019年09月09日 10:23:37   作者:幸福的小耗子  
這篇文章主要介紹了Spring JDBC的使用方法詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

1、為什么使用Spring提供的JDBC的封裝?

因?yàn)镾pring提供了完整的模板類(lèi)以及基類(lèi)可以簡(jiǎn)化開(kāi)發(fā),我們只需寫(xiě)少量的代碼即可。

2、實(shí)例講解

第一步:導(dǎo)入依賴(lài)  mysql-connector spring-jdbc spring-tx spring-core spring-beans spring-context 等等

第二步:數(shù)據(jù)庫(kù)的建立,配置xml

第三步:獲取jdbcTemplate對(duì)象

可以這樣獲得

 private JdbcTemplate jdbcTemplate;
  public void setDataSource(DataSource dataSource){
    this.jdbcTemplate=new JdbcTemplate(dataSource);
} 
<bean id="userDao" class="com.test.jdbc.dao.impl.UserDaoImpl">
    <property name="dataSource" ref="dataSource"/>
</bean>

也可以繼承JdbcDaoSupport,使用super.getJdbcTemplate()獲得

第四步:使用jdbcTemplate對(duì)象進(jìn)行增刪改查

增刪改使用update(),這個(gè)方法的參數(shù),第一個(gè)為sql語(yǔ)句,之后為可變參數(shù),傳入sql語(yǔ)句中的占位符

查詢(xún)使用queryForObject()方法的第一個(gè)參數(shù)為sql中需要的參數(shù),第三個(gè)參數(shù)為實(shí)現(xiàn)RowMapper接口的對(duì)象,

用于處理結(jié)果集,該方法要求返回單一的對(duì)象

query()該方法返回對(duì)象集合

public class UserDaoImpl extends JdbcDaoSupport implements IUserDao {

  public void save(User user) {
    super.getJdbcTemplate().update("insert into user(id,username,password,date,salary) values(null,?,?,?,?)",
        user.getUsername(),user.getPassword(),user.getDate(),user.getSalary());

  }

  public void update(User user) {
    super.getJdbcTemplate().update("update user set username=?,password=?,date=?,salary=? where id=?",
        user.getUsername(), user.getPassword(), user.getDate(), user.getSalary(), user.getId());

  }

  public void delete(Integer id) {
    super.getJdbcTemplate().update("delete from user where id=?",id);
  }

  public User findById(Integer id) {
    /* List<User> user = super.getJdbcTemplate().query("select * from user where id=?", new Object[]{id},
        new RowMapper<User>() {
          @Override
          public User mapRow(ResultSet resultSet, int i) throws SQLException {
            User user = new User();
            user.setId(resultSet.getInt("id"));
            user.setDate(resultSet.getDate("date"));
            user.setUsername(resultSet.getString("username"));
            user.setPassword(resultSet.getString("password"));
            user.setSalary(resultSet.getBigDecimal("salary"));
            return user;
          }
          //方法的返回值會(huì)直接封裝到集合中
        });
    return user.size()>0?user.get(0):null;*/

    User user = super.getJdbcTemplate().queryForObject("select * from user where id=?", new Object[]{id},
        new RowMapper<User>() {
          @Override
          public User mapRow(ResultSet resultSet, int i) throws SQLException {
            User user = new User();
            user.setId(resultSet.getInt("id"));
            user.setDate(resultSet.getDate("date"));
            user.setUsername(resultSet.getString("username"));
            user.setPassword(resultSet.getString("password"));
            user.setSalary(resultSet.getBigDecimal("salary"));
            return user;
          }
        });
    return user;
  }

  public List<User> findAll() {
    List<User> users = super.getJdbcTemplate().query("select * from user",
        new RowMapper<User>() {
          @Override
          public User mapRow(ResultSet resultSet, int i) throws SQLException {
            User user = new User();
            user.setId(resultSet.getInt("id"));
            user.setDate(resultSet.getDate("date"));
            user.setUsername(resultSet.getString("username"));
            user.setPassword(resultSet.getString("password"));
            user.setSalary(resultSet.getBigDecimal("salary"));
            return user;
          }
          //方法的返回值會(huì)直接封裝到集合中
        });
    return users;
  }

}

3、JdbcTemplate是JDBC核心包的中心類(lèi)

知識(shí)點(diǎn)查詢(xún)地址:

https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/data-access.html#jdbc

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 使用Spring Data Jpa的CriteriaQuery一個(gè)陷阱

    使用Spring Data Jpa的CriteriaQuery一個(gè)陷阱

    使用Spring Data Jpa的CriteriaQuery進(jìn)行動(dòng)態(tài)條件查詢(xún)時(shí),可能會(huì)遇到一個(gè)陷阱,當(dāng)條件為空時(shí),查詢(xún)不到任何結(jié)果,并不是期望的返回所有結(jié)果。這是為什么呢?
    2020-11-11
  • 開(kāi)發(fā)10年,全記在這本Java進(jìn)階寶典里了

    開(kāi)發(fā)10年,全記在這本Java進(jìn)階寶典里了

    這篇文章主要給大家分享介紹了這本Java進(jìn)階寶典里,是開(kāi)發(fā)10年總結(jié)出來(lái)的,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來(lái)一起看看吧
    2019-04-04
  • Java如何有效避免SQL注入漏洞的方法總結(jié)

    Java如何有效避免SQL注入漏洞的方法總結(jié)

    SQL注入是比較常見(jiàn)的網(wǎng)絡(luò)攻擊方式之一,它不是利用操作系統(tǒng)的BUG來(lái)實(shí)現(xiàn)攻擊,而是針對(duì)程序員編程時(shí)的疏忽,通過(guò)SQL語(yǔ)句,實(shí)現(xiàn)無(wú)帳號(hào)登錄,甚至篡改數(shù)據(jù)庫(kù),這篇文章主要給大家介紹了關(guān)于Java如何避免SQL注入漏洞的兩種方法,需要的朋友可以參考下
    2022-01-01
  • 遞歸之斐波那契數(shù)列java的3種方法

    遞歸之斐波那契數(shù)列java的3種方法

    這篇文章主要為大家詳細(xì)介紹了遞歸之斐波那契數(shù)列java的3種方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • Java設(shè)計(jì)模式之備忘錄模式(Memento模式)介紹

    Java設(shè)計(jì)模式之備忘錄模式(Memento模式)介紹

    這篇文章主要介紹了Java設(shè)計(jì)模式之備忘錄模式(Memento模式)介紹,memento是一個(gè)保存另外一個(gè)對(duì)象內(nèi)部狀態(tài)拷貝的對(duì)象,這樣以后就可以將該對(duì)象恢復(fù)到原先保存的狀態(tài),需要的朋友可以參考下
    2015-03-03
  • java使用Runtime執(zhí)行系統(tǒng)命令遇到的問(wèn)題

    java使用Runtime執(zhí)行系統(tǒng)命令遇到的問(wèn)題

    這篇文章主要介紹了java使用Runtime執(zhí)行系統(tǒng)命令遇到的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • Java Scaner類(lèi)詳解_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    Java Scaner類(lèi)詳解_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    Java.util.Scanner是Java5.0的新特征,主要功能是簡(jiǎn)化文本掃描。下面通過(guò)本文給大家分享java scaner類(lèi)相關(guān)知識(shí),需要的朋友下吧
    2017-04-04
  • Spring Boot Maven 打包可執(zhí)行Jar文件的實(shí)現(xiàn)方法

    Spring Boot Maven 打包可執(zhí)行Jar文件的實(shí)現(xiàn)方法

    這篇文章主要介紹了Spring Boot Maven 打包可執(zhí)行Jar文件的實(shí)現(xiàn)方法,需要的朋友可以參考下
    2018-02-02
  • 解決mybatis plus 駝峰式命名規(guī)則問(wèn)題

    解決mybatis plus 駝峰式命名規(guī)則問(wèn)題

    這篇文章主要介紹了解決mybatis plus 駝峰式命名規(guī)則,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Java實(shí)現(xiàn)手寫(xiě)乞丐版線(xiàn)程池的示例代碼

    Java實(shí)現(xiàn)手寫(xiě)乞丐版線(xiàn)程池的示例代碼

    在這篇文章當(dāng)中我們主要介紹實(shí)現(xiàn)一個(gè)非常簡(jiǎn)易版的線(xiàn)程池,深入的去理解其中的原理,麻雀雖小,五臟俱全,感興趣的小伙伴快跟隨小編一起學(xué)習(xí)學(xué)習(xí)吧
    2022-10-10

最新評(píng)論

青岛市| 香格里拉县| 仙桃市| 永年县| 红原县| 潮州市| 金昌市| 米脂县| 山西省| 南丰县| 彰化市| 大宁县| 溧水县| 新干县| 巴林右旗| 太康县| 鄂尔多斯市| 栾城县| 渭源县| 榆林市| 隆子县| 义马市| 金塔县| 遵义县| 康平县| 佛山市| 根河市| 崇礼县| 汝南县| 长宁区| 图片| 新蔡县| 永胜县| 贵溪市| 新野县| 施甸县| 贵州省| 内江市| 黄浦区| 鹤壁市| 涿鹿县|