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

Spring JDBCTemplate原理及使用實(shí)例

 更新時(shí)間:2020年03月30日 11:34:20   作者:.長(zhǎng)卿  
這篇文章主要介紹了Spring JDBCTemplate原理及使用實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

一:JDBCTemplate簡(jiǎn)介

  Spring為各種持久化技術(shù)提供了簡(jiǎn)單操作的模板和回調(diào)API:

ORM持久化技術(shù) 模板類
原生JDBC org.springframework.jdbc.core.JdbcTemplate
Hibernate5.0 org.springframework.orm.hibernate5.HibernateTemplate
IBatis(MyBatis) org.springframework.orm.ibatis.SqlMapClientTemplate
JPA org.springfrmaework.orm.jpa.JpaTemplate

  其中,對(duì)于原生的JDBC編程,Spring提供了JDBCTemplate,對(duì)jdbc操作進(jìn)行了一系列封裝,使得jdbc編程更加簡(jiǎn)單。

二:引入jar包或添加依賴

  數(shù)據(jù)庫驅(qū)動(dòng)包則按需引入。

三:創(chuàng)建數(shù)據(jù)庫連接配置文件

 jdbc.user=root
 jdbc.password=123456
 jdbc.driverClass=com.mysql.jdbc.Driver
 jdbc.jdbcUrl=jdbc\:......

四:Spring托管

在Spring配置文件中,注入dataSource,從配置文件中獲取內(nèi)容進(jìn)行bean的初始化。

<context:property-placeholder location="classpath:db.properties"/> //指定數(shù)據(jù)庫連接配置文件
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> //托管dataSource bean
  <property name="user" value="${jdbc.user}"></property> //獲取配置文件內(nèi)容對(duì)dataSource進(jìn)行初始化
  <property name="password" value="${jdbc.password}"></property>
  <property name="driverClass" value="${jdbc.driverClass}"></property>
  <property name="jdbcUrl" value="${jdbc.jdbcUrl}"></property>
</bean>

<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> //托管jdbcTemplate,引用dataSource
  <property name="dataSource" ref="dataSource"></property>
</bean>

五:在代碼中使用

  1:通過Spring配置文件啟動(dòng)IOC容器

//啟動(dòng)IoC容器
ApplicationContext ctx=new ClassPathXmlApplicationContext("applicationContext.xml");

  2:在IOC容器獲取jdbcTemplate實(shí)例

//獲取IoC容器中JdbcTemplate實(shí)例
JdbcTemplate jdbcTemplate=(JdbcTemplate) ctx.getBean("jdbcTemplate");

  3:使用jdbcTemplate調(diào)用方法執(zhí)行數(shù)據(jù)庫操作

  JdbcTemplate主要提供以下五大方法:

execute方法:可以用于執(zhí)行任何SQL語句。

update方法及batchUpdate方法:update方法用于執(zhí)行新增、修改、刪除等語句;batchUpdate方法用于執(zhí)行批處理相關(guān)語句;

query方法及queryForXXX方法:用于執(zhí)行查詢相關(guān)語句;

call方法:用于執(zhí)行存儲(chǔ)過程、函數(shù)相關(guān)語句。

  3.1)通過 update 進(jìn)行插入

String sql="insert into user (name,deptid) values (?,?)";
int count= jdbcTemplate.update(sql, new Object[]{"caoyc",3});

  3.2)通過 update 進(jìn)行修改

String sql="update user set name=?,deptid=? where id=?";
jdbcTemplate.update(sql,new Object[]{"zhh",5,51});

  3.3)通過 update 進(jìn)行刪除

String sql="delete from user where id=?";
jdbcTemplate.update(sql,51);

  3.4)批量插入、修改、刪除

String sql="insert into user (name,deptid) values (?,?)";

List<Object[]> batchArgs=new ArrayList<Object[]>();
batchArgs.add(new Object[]{"caoyc",6});
batchArgs.add(new Object[]{"zhh",8});
batchArgs.add(new Object[]{"cjx",8});

jdbcTemplate.batchUpdate(sql, batchArgs);

六:在DAO層使用

  數(shù)據(jù)庫操作一般結(jié)合ORM進(jìn)行使用。

  1:首先定義實(shí)體類

package com.proc;

public class User {
  private Integer id;
  private String name;
  private Integer deptid;
  public Integer getId() {
    return id;
  }
  public void setId(Integer id) {
    this.id = id;
  }
  public String getName() {
    return name;
  }
  public void setName(String name) {
    this.name = name;
  }
  public Integer getDeptid() {
    return deptid;
  }
  public void setDeptid(Integer deptid) {
    this.deptid = deptid;
  }

  public String toString() {
    return "User [id=" + id + ", name=" + name + ", deptid=" + deptid + "]";
  }
}

  2:然后定義該實(shí)體類的DAO類

package com.proc;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.stereotype.Repository;

@Repository
public class UserDao {

  @Autowired
  private JdbcTemplate jdbcTemplate;
  
  public User get(int id){
    String sql="select id,name,deptid from user where id=?";
    RowMapper<User> rowMapper=new BeanPropertyRowMapper<User>(User.class);
    return jdbcTemplate.queryForObject(sql, rowMapper,id);
  }
}

  在DAO類中,定義對(duì)應(yīng)實(shí)體實(shí)例的增刪查改操作方法,在方法體中,使用jdbcTemplate。

  3:在service層,通過dao實(shí)例調(diào)用方法,執(zhí)行數(shù)據(jù)操作。

UserDao userDao=(UserDao) ctx.getBean("userDao");
System.out.println(userDao.get(53));

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

相關(guān)文章

  • Springboot詳解實(shí)現(xiàn)食品倉庫管理系統(tǒng)流程

    Springboot詳解實(shí)現(xiàn)食品倉庫管理系統(tǒng)流程

    這是一個(gè)使用Springboot開發(fā)的食品倉庫管理系統(tǒng),是為商家提供商品貨物進(jìn)銷存的信息化管理系統(tǒng),具有一個(gè)倉庫管理系統(tǒng)該有的所有功能,感興趣的朋友快來看看吧
    2022-06-06
  • IDEA斷點(diǎn)調(diào)試,斷點(diǎn)不起作用的解決

    IDEA斷點(diǎn)調(diào)試,斷點(diǎn)不起作用的解決

    這篇文章主要介紹了IDEA斷點(diǎn)調(diào)試,斷點(diǎn)不起作用的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • JAVA IO API使用詳解

    JAVA IO API使用詳解

    本文通過理論、用法、實(shí)例詳細(xì)說明了JAVA IO的使用,大家參考其中的實(shí)例代碼實(shí)現(xiàn)自己的JAVA IO程序
    2013-11-11
  • 基于SSM框架之個(gè)人相冊(cè)示例代碼

    基于SSM框架之個(gè)人相冊(cè)示例代碼

    本篇文章主要介紹了基于SSM框架之個(gè)人相冊(cè)示例代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2017-03-03
  • java實(shí)現(xiàn)馬踏棋盤游戲

    java實(shí)現(xiàn)馬踏棋盤游戲

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)馬踏棋盤游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • 如何使用Spring AOP的通知類型及創(chuàng)建通知

    如何使用Spring AOP的通知類型及創(chuàng)建通知

    這篇文章主要給大家介紹了關(guān)于如何使用Spring AOP的通知類型及創(chuàng)建通知的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Spring AOP具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • Spring中的依賴注入DI詳解

    Spring中的依賴注入DI詳解

    這篇文章主要介紹了Spring中的依賴注入DI詳解,組件之間依賴關(guān)系由容器在運(yùn)行期決定,形象的說,即由容器動(dòng)態(tài)的將依賴關(guān)系注入到組件之中,依賴注入的目的并非為軟件系統(tǒng)帶來更多功能,是為了提升組件重用的頻率,并為系統(tǒng)搭建一個(gè)靈活、可擴(kuò)展的平臺(tái),需要的朋友可以參考下
    2024-01-01
  • 解決@ServerEndpoint不能注入@Autowired的問題

    解決@ServerEndpoint不能注入@Autowired的問題

    這篇文章主要介紹了解決@ServerEndpoint不能注入@Autowired的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • Java ThreadLocal原理解析以及應(yīng)用場(chǎng)景分析案例詳解

    Java ThreadLocal原理解析以及應(yīng)用場(chǎng)景分析案例詳解

    這篇文章主要介紹了Java ThreadLocal原理解析以及應(yīng)用場(chǎng)景分析案例詳解,本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • Java中的注解詳解(Annotation)

    Java中的注解詳解(Annotation)

    文章介紹了Java中的注解,包括注解的定義、元注解、Java內(nèi)置的三大注解、自定義注解、反射注解以及注解的作用,注解是一種特殊的標(biāo)記,可以用于類、方法、字段等元素,用于提供元數(shù)據(jù)信息
    2025-03-03

最新評(píng)論

会宁县| 永安市| 沿河| 高阳县| 望城县| 内黄县| 广灵县| 万源市| 兴山县| 甘德县| 资阳市| 绥棱县| 南丰县| 阿尔山市| 台中县| 洪洞县| 友谊县| 扬中市| 兴义市| 江北区| 宾川县| 社会| 浦江县| 大庆市| 平南县| 西和县| 黑水县| 宿松县| 中超| 沈阳市| 静宁县| 绩溪县| 博爱县| 荆州市| 吉木萨尔县| 金阳县| 甘肃省| 石首市| 蒙山县| 井研县| 囊谦县|