中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Spring JDBCTemplate原理及使用實例

發布時間:2020-09-18 16:36:14 來源:腳本之家 閱讀:138 作者:.長卿 欄目:編程語言

一:JDBCTemplate簡介

  Spring為各種持久化技術提供了簡單操作的模板和回調API:

ORM持久化技術 模板類
原生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

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

二:引入jar包或添加依賴

Spring JDBCTemplate原理及使用實例

  數據庫驅動包則按需引入。

三:創建數據庫連接配置文件

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

四:Spring托管

在Spring配置文件中,注入dataSource,從配置文件中獲取內容進行bean的初始化。

<context:property-placeholder location="classpath:db.properties"/> //指定數據庫連接配置文件
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> //托管dataSource bean
  <property name="user" value="${jdbc.user}"></property> //獲取配置文件內容對dataSource進行初始化
  <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配置文件啟動IOC容器

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

  2:在IOC容器獲取jdbcTemplate實例

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

  3:使用jdbcTemplate調用方法執行數據庫操作

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

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

update方法及batchUpdate方法:update方法用于執行新增、修改、刪除等語句;batchUpdate方法用于執行批處理相關語句;

query方法及queryForXXX方法:用于執行查詢相關語句;

call方法:用于執行存儲過程、函數相關語句。

  3.1)通過 update 進行插入

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

  3.2)通過 update 進行修改

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

  3.3)通過 update 進行刪除

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層使用

  數據庫操作一般結合ORM進行使用。

  1:首先定義實體類

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:然后定義該實體類的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類中,定義對應實體實例的增刪查改操作方法,在方法體中,使用jdbcTemplate。

  3:在service層,通過dao實例調用方法,執行數據操作。

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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

老河口市| 万全县| 武冈市| 泰顺县| 鄂州市| 镇赉县| 邯郸市| 闸北区| 百色市| 青铜峡市| 庄河市| 华容县| 错那县| 临沧市| 大方县| 萨嘎县| 陆川县| 松溪县| 宁陵县| 泰兴市| 舒兰市| 玛曲县| 洛川县| 揭阳市| 鸡东县| 博湖县| 长葛市| 新巴尔虎右旗| 花垣县| 监利县| 海兴县| 信宜市| 固原市| 友谊县| 广州市| 河北省| 蒙城县| 上蔡县| 铜梁县| 定结县| 临沧市|