电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Spring JDBCTemplate原理及使用實例

瀏覽:61日期:2023-09-13 13:54:40

一: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 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 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;@Repositorypublic 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));

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

標簽: Spring
相關文章:
主站蜘蛛池模板: 礼至家居-全屋定制家具_一站式全屋整装_免费量房设计报价 | 许昌奥仕达自动化设备有限公司| 密封圈_泛塞封_格莱圈-[东莞市国昊密封圈科技有限公司]专注密封圈定制生产厂家 | 继电器模组-IO端子台-plc连接线-省配线模组厂家-世麦德 | 危废处理系统,水泥厂DCS集散控制系统,石灰窑设备自动化控制系统-淄博正展工控设备 | 智能型高压核相仪-自动开口闪点测试仪-QJ41A电雷管测试仪|上海妙定 | 萃取箱-萃取槽-PVC萃取箱厂家-混合澄清槽- 杭州南方化工设备 | 我爱古诗词_古诗词名句赏析学习平台 | 贴片电容-贴片电阻-二三极管-国巨|三星|风华贴片电容代理商-深圳伟哲电子 | 刚性-柔性防水套管-橡胶伸缩接头-波纹管补偿器-启腾供水材料有限公司 | SOUNDWELL 编码器|电位器|旋转编码器|可调电位器|编码开关厂家-广东升威电子制品有限公司 | 骨灰存放架|骨灰盒寄存架|骨灰架厂家|智慧殡葬|公墓陵园管理系统|网上祭奠|告别厅智能化-厦门慈愿科技 | 123悬赏网_发布悬赏任务_广告任务平台 | 渗透仪-直剪仪-三轴仪|苏州昱创百科| EPK超声波测厚仪,德国EPK测厚仪维修-上海树信仪器仪表有限公司 | 盛源真空泵|空压机-浙江盛源空压机制造有限公司-【盛源官网】 | 压接机|高精度压接机|手动压接机|昆明可耐特科技有限公司[官网] 胶泥瓷砖胶,轻质粉刷石膏,嵌缝石膏厂家,腻子粉批发,永康家德兴,永康市家德兴建材厂 | 工业CT-无锡璟能智能仪器有限公司| 无线讲解器-导游讲解器-自助讲解器-分区讲解系统 品牌生产厂家[鹰米讲解-合肥市徽马信息科技有限公司] | 打包箱房_集成房屋-山东佳一集成房屋有限公司 | Eiafans.com_环评爱好者 环评网|环评论坛|环评报告公示网|竣工环保验收公示网|环保验收报告公示网|环保自主验收公示|环评公示网|环保公示网|注册环评工程师|环境影响评价|环评师|规划环评|环评报告|环评考试网|环评论坛 - Powered by Discuz! | 电机铸铝配件_汽车压铸铝合金件_发动机压铸件_青岛颖圣赫机械有限公司 | 电渗析,废酸回收,双极膜-山东天维膜技术有限公司 | 非小号行情 - 专业的区块链、数字藏品行情APP、金色财经官网 | 西安标准厂房_陕西工业厂房_西咸新区独栋厂房_长信科技产业园官方网站 | 螺旋丝杆升降机-SWL蜗轮-滚珠丝杆升降机厂家-山东明泰传动机械有限公司 | 海鲜池-专注海鲜鱼缸、移动海鲜缸、饭店鱼缸设计定做-日晟水族厂家 | 杭州货架订做_组合货架公司_货位式货架_贯通式_重型仓储_工厂货架_货架销售厂家_杭州永诚货架有限公司 | 农业仪器网 - 中国自动化农业仪器信息交流平台 | 3d可视化建模_三维展示_产品3d互动数字营销_三维动画制作_3D虚拟商城 【商迪3D】三维展示服务商 广东健伦体育发展有限公司-体育工程配套及销售运动器材的体育用品服务商 | 南京和瑞包装有限公司 | 乙炔气体报警装置|固定式氯化氢检测仪|河南驰诚电气百科 | 「安徽双凯」自动售货机-无人售货机-成人用品-自动饮料食品零食售货机 | 儿童乐园|游乐场|淘气堡招商加盟|室内儿童游乐园配套设备|生产厂家|开心哈乐儿童乐园 | 英国雷迪地下管线探测仪-雷迪RD8100管线仪-多功能数字听漏仪-北京迪瑞进创科技有限公司 | 大型工业风扇_工业大风扇_大吊扇_厂房车间降温-合昌大风扇 | SOUNDWELL 编码器|电位器|旋转编码器|可调电位器|编码开关厂家-广东升威电子制品有限公司 | 北京工业设计公司-产品外观设计-产品设计公司-千策良品工业设计 北京翻译公司-专业合同翻译-医学标书翻译收费标准-慕迪灵 | 艾乐贝拉细胞研究中心 | 国家组织工程种子细胞库华南分库 | 定硫仪,量热仪,工业分析仪,马弗炉,煤炭化验设备厂家,煤质化验仪器,焦炭化验设备鹤壁大德煤质工业分析仪,氟氯测定仪 | 南京技嘉环保科技有限公司-杀菌除臭剂|污水|垃圾|厕所|橡胶厂|化工厂|铸造厂除臭剂 |