spring boot获取datasource为null_Spring讲解九

2023-11-10

Spring JDBC 数据访问

Spring JDBC是Spring所提供的持久层技术,它的主要目标是降低使用JDBC API的门槛,以一种更直接,更简介,更简单的方式使用JDBC API, 在Spring JDBC里,仅需做那些与业务相关的DML操作,而将资源获取,Statment创建,资源释放以及异常处理等繁杂而乏味的工作交给Spring JDBC.
虽然ORM的框架已经成熟丰富,但是JDBC的灵活,直接的特性,依然让他拥有自己的用武之地,如在完全依赖查询模型动态产生查询语句的综合查询系统中,Hibernaye,MyBatis,JPA等框架都无法使用,这里JDBC是唯一的选择.

主要内容:学习使用JdbcTemplate API和 如何使用Spring管理 JdbcTemplate

1. JdbcTemplate入门

1.1 创建项目

  • 项目名: spring-jdbc
  • 引入jar包
    <dependencies>
    <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>3.8.1</version>
    <scope>test</scope>
    </dependency>

    <dependency>
    <groupId>aopalliance</groupId>
    <artifactId>aopalliance</artifactId>
    <version>1.0</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/org.aspectj/aspectjweaver -->
    <dependency>
    <groupId>org.aspectj</groupId>
    <artifactId>aspectjweaver</artifactId>
    <version>1.8.10</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.springframework/spring-aspects -->
    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-aspects</artifactId>
    <version>4.3.7.RELEASE</version>
    </dependency>
    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-aop</artifactId>
    <version>4.3.10.RELEASE</version>
    </dependency>
    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context-support</artifactId>
    <version>4.3.11.RELEASE</version>
    </dependency>

    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>4.3.10.RELEASE</version>
    </dependency>
    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
    <version>4.3.10.RELEASE</version>
    </dependency>

    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-beans</artifactId>
    <version>4.3.10.RELEASE</version>
    </dependency>

    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-expression</artifactId>
    <version>4.3.10.RELEASE</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jdbc</artifactId>
    <version>4.3.9.RELEASE</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
    <dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.38</version>
    </dependency>
    <dependency>
    <groupId>commons-logging</groupId>
    <artifactId>commons-logging</artifactId>
    <version>1.1.2</version>
    </dependency>

    <dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.14</version>
    </dependency>

    <dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.38</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/commons-dbcp/commons-dbcp -->
    <dependency>
    <groupId>commons-dbcp</groupId>
    <artifactId>commons-dbcp</artifactId>
    <version>1.4</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/org.springframework/spring-test -->
    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-test</artifactId>
    <version>4.3.10.RELEASE</version>
    <scope>test</scope>
    </dependency>

    <!-- https://mvnrepository.com/artifact/com.mchange/mchange-commons-java -->
    <dependency>
    <groupId>com.mchange</groupId>
    <artifactId>mchange-commons-java</artifactId>
    <version>0.2.11</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot -->
    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot</artifactId>
    <version>1.5.7.RELEASE</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/com.mchange/c3p0 -->
    <dependency>
    <groupId>com.mchange</groupId>
    <artifactId>c3p0</artifactId>
    <version>0.9.5.2</version>
    </dependency>
    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-tx</artifactId>
    <version>4.3.9.RELEASE</version>
    </dependency>
  • 导入日志:log4j.properties

1.2 创建数据库

数据库名: springjdbc

创建角色表:

CREATE TABLE `role` (
  `rid` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '角色id',
  `rname` VARCHAR(20) NOT NULL COMMENT '角色名',
  `alias` VARCHAR(20) NOT NULL COMMENT '角色别名',
  PRIMARY KEY (`rid`)
)
​
INSERT INTO role (rid,rname,alias)
    VALUES(1,'admin','系统管理员'),(2,'dispatcher','调度员');

1.3 测试代码

 @Test
 public  void test1() throws Exception {
    
        //TODO 测试jdbcTemplate简单使用
        //1.创建c3p0链接池
        ComboPooledDataSource dataSource  = new ComboPooledDataSource();
        dataSource.setDriverClass("com.mysql.jdbc.Driver");
        dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/springjdbc");
        dataSource.setUser("root");
        dataSource.setPassword("111");
​
​
        //创建jdbcTemplate对象
        JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
​
        //创建sql语句
        String sq
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

spring boot获取datasource为null_Spring讲解九 的相关文章

  • 使用Fastjson解析List对象时出现$ref: "$.list[0]"的问题原因及解决方法

    1 遇到的问题 在解析List时 List的对象中又包含了一个对象 然后使用JSON toJSONString List lt gt 就出现了问题如下 tokenDTO ref balanceList 1 tokenDTO 然后 百度了一下
  • ssm基于WEB的房屋出租管理系统的设计与实现161620

    房屋出租管理系统的设计与实现 摘 要 信息化社会内需要与之针对性的信息获取途径 但是途径的扩展基本上为人们所努力的方向 由于站在的角度存在偏差 人们经常能够获得不同类型信息 这也是技术最为难以攻克的课题 针对房屋出租管理等问题 对房屋出租管
  • vitualbox中的centos7与主机共享文件

    我在vitualbox中安装了一个centos7 最小安装 主机是win10操作系统 那么如何在虚拟机和主机之间进行文件共享呢 下面是本人实现过程 以及过程中遇到的一些问题 1 在主机中选择一个文件夹作为共享文件夹 我选择的是D cento
  • Vue2部分源码学习(响应式原理、nextTick原理、computed、watch、模版编译、diff算法、key、Vue3新特性)

    资源 vue源码地址 源码目录结构 一 响应式原理 理解 1 核心点 Object defineProperty 2 默认 Vue 在初始化数据时 会给 data 中的属性使用 Object defineProperty 重新定义所有属性
  • Apollo Cyber RT学习手册(基于Ubuntu18.04、Apollo 6.0_edu)

    本文全部内容源自赵虚左老师的 百度Apollo智能驾驶课程 如有侵权请联系 本文内容为作者手敲 禁止任何形式转载 谢谢 第一章 Cyber RT概述与环境搭建 1 1Cyber RT简介 Apollo项目源于2017年7月首次推出 标志着汽
  • 接入网络技术

    接入网络 是实现网络边缘的端系统与网络核心连接与接入的网络 常见有以下几类 1 电话拨号接入 这类接入方式在早期接入网络中主要用于家庭接入 利用了电话网络覆盖广泛的优点 能够方便地实现分散的家庭用户接入网络 但是这种接入方式的接入链路带宽有
  • VM虚拟机桥接无法获取IP

    VM虚拟机桥接无法获取IP 出现情况 Linux虚拟机网络配置桥接但无法获取IP ifconfig a 查看网卡设备名 sudo ifconfig 网卡设备名 up 激活网卡设备 sudo dhclient 网卡设备名 指定网卡获取IP
  • 多线程相关实例

    文章目录 一 多线程案例 1 单例模式 1 1 饿汉模式 1 2 懒汉模式 1 3 两个模式的线程安全问题 1 4 用锁来解决懒汉模式的非原子操作 1 5 解决第二次调用getInstance的锁的问题 1 6 用volatile解决懒汉模
  • 断言语法disable iff

    full write assert property posedge clk i disable iff rst ni full o gt push i else fatal 1 Trying to push new data althou
  • Vue中使用echarts实现仪表盘

    实现效果 echarts使用说明请查看 Vue中使用echarts实现常用图表总结 option配置 option tooltip formatter a br b c toolbox feature restore saveAsImage
  • @@位运算

    定义 将整数转换为二进制 按二进制位进行运算 运算符号 按位与 按位或 按位异或 lt lt 左移 gt gt 右移 14 gt 01110 19 gt 10011 14 19 00010 2 0则0 14 19 111111 31 1则1
  • 概率统计及其应用第三章知识总结_数学篇:概率论复习规划

    终于到了第一轮最后一个环节 概率论复习规划 复习到这里 我们接下来会面临3个困难 1 6月份期末考试 与复习时间会有冲突 2 捡芝麻丢西瓜 复习概率论 却忘了前面的知识 3 二战考生忙毕业 问题一 期末考试的目标 情况一 不保研 不出国 不
  • 计算机网络基础(十二)---网络层-外部网关路由协议

    文章内容概览 BGP协议 BGP Border Gateway Protocol 边际网关协议 BGP协议是运行在自治系统 AS 之间的一种协议 在一个网络管理机构下边的网络 都可以看做是一个AS 比如 公司网络 学校网络 为什么在AS之间
  • vue3 element plus 设置默认时间,全局挂载时间格式化方法

    首先是在工具包里封装时间格式化的方法 全局挂载时间格式化的方法 export function formatter thistime any fmt string var this new Date thistime var o any M
  • 【python】 无符号int、float、double与16进制字符串的互相转换 有符号int与16进制字符串的相互转换

    一 无符号int float double与16进制字符串的互相转换 import struct def intToHex num int转16进制 return hex num 2 upper def hexToInt hexString
  • 小程序中半屏打开其他小程序,开发者工具调试半屏

    前言 有需要是在当前小程序中 点击操作时 如果他没有注册会员 则强制去另一个小程序去注册会员 注册成功在返回 在这期间 打开另一个小程序是半屏来展示的 实现效果 在a小程序中半屏展示b小程序 半屏上方展示b小程序信息 打开的vconsole
  • Cocos2d-x 2.2.3 Android部署

    今天总结出来的部署流程 已经成功把自己的项目编译到android真机上 省去了安装ndk等步骤 环境 win7 64位 1 导入项目到eclipse 2 导入libcocos2dx 例子 C cocos2d x 2 2 0 cocos2dx
  • 【mac解决办法】PytorchStreamReader failed reading zip archive: failed finding central directory

    错误说明 预训练模型下载中断 导致模型不完整 不能正确读取 解决办法 将下载的不完整的模型文件删除 重新执行代码 自动将重新下载 注意 自己下载的模型导入该文件夹是不管用的 每次执行都会不同结尾的文件名 模型保存路径 Users 用户名 c
  • 软件测试项目【金融、银行、电商、商城】

    项目经验 案例一 项目时间 2016 08 2017 07 项目名称 小花钱包 Web 项目描述 项目介绍 这个产品产是互联网金融理财服务平台 既可以发起投标 也可以借款 提供定期理财 活期理财等多种产品 平台主要有投资人 借款人 系统录入

随机推荐

  • 【虹软24届校招正式批】本周算法&;开发第二波笔试来袭

    今日更新提醒 看过了招聘信息 快来用牛客直投官网吧 打call 一键直投 给自己多一次面试机会 赞 移动端 https mnowpick nowcoder com m m 立得空间 C 开发技术面 1 项目中的线程池问题2 指针引用区别3
  • 1.fastadmin之Log日志使用

    要开始用fastadmin做小程序的后台 怎么说 这个框架封装的很好 对于我这种新手渣渣不太友好 惆怅 首先来谈谈日志的使用吧 如何打个log 一 概念 1 在控制器中声明 use think Log 2 log的方法 一般我使用log w
  • Spring Cloud获取本机IP地址

    最新的Spring Cloud获取本机的IP地址的配置文件如下 eureka instance hostname spring cloud client ip address lease renewal interval in second
  • 用Langchain构建一个阅读助手

    LangChain 是一个强大的框架 可以简化构建高级语言模型应用程序的过程 01 什么是Langchain LangChain是一个强大的框架 旨在帮助开发人员使用语言模型构建端到端的应用程序 它提供了一套工具 组件和接口 可简化创建由大
  • STM32CubeM的搭建以及基于HAL库实现LED闪烁

    文章目录 一 STM32的开发环境的搭建 1 安装jdk环境 2 安装STM32CubeMX 3 安装固件库 4 安装MDK5软件 二 利用工具生成点亮LED灯的代码 三 MDK5生成 hex文件 四 程序烧录 五 运行结果 六 MDK5模
  • 基于SimGAN网络的人眼数据生成方法_SimGAN原理_参考代码

    注 此文为复现sim GAN 参考了一些论文 博客 如有侵权请联系 我附上原出处 由于一些格式原因 文章有些部分会比较乱 请见谅 Learning from Simulated and Unsupervised Images through
  • 5个你不可不知的IE的bug及其解决方案

    E令人咬牙切齿的bug不胜枚举 其中IE6更是臭名昭著 令人发指 这里总结出IE下最为严重的5个bug 及其应对方案 1 IE6下无法显示png格式的透明信息 这个bug是众多网页设计师的噩梦 虽然可以采用gif代替 但是gif的表现力实在
  • Ubuntu之Docker安装

    1 先卸载旧版 如果没有的话 就直接执行第二步 apt get remove docker docker engine docker io containerd runc 这个命令用于在 Ubuntu 和其他基于 Debian 的 Linu
  • qt 储存库

    手动添加 储存库要定位一个储存有QT在线安装镜像的地址 打开 http download qt io static mirrorlist 这个网址 显示了各国的qt镜像站点 点击 HTTP 最终进到 online repository ht
  • [C语言]浮点型在内存中的存储

    在上一篇文章 我们讲述了整型在内存中的存储 这篇文章我们就一起来看一下 浮点型在内存中的存储 回顾 整型在内存中的存储 C语言 和我一起来认识 整型在内存中的存储 HY PIGIE的博客 CSDN博客 目录 1 浮点数家族 2 整型和浮点型
  • Envi5.3——高分二号PMS数据预处理

    首先第一步 打开数据open 以TIFF格式打开 开始进行正射校正 RPC正射工作流程 我们先对多光谱进行校正 输入需正射校正文件和DEM文件 在这里我们不用自带的2010年的DEM文件 点击下一步 在高级控制面板 输出像素大小为4米 图像
  • 用于非线性时间序列预测的稀疏局部线性和邻域嵌入(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码实现 1 概述 本文提出了一种基于字典的L1范数稀疏编码
  • 基于SpringBoot的特色农产品销售设计与实现

    摘 要 目前市场上众多的特色农产品销售系统存在种种不足 比如系统无需登录即可查看农产品卖家的联系方式 并且交易大多为线下交易 很难实现线上购买 物流配送 线上收货收款的功能 本系统提供线上购买服务 使用数据库进行订单管理 设计优化交互界面
  • 【成电860考研】经验贴汇总(公共课+专业课+复试)-扒遍所有网站:信软群、王道、知乎、csdn等,截止21年7月整理出的所有帖子-共15篇

    单词哥 2020跨考 背景 记得 18 年底的时候 好朋友那年考研 我闲的无事就拿他买的英 语一真题做了下 忘了哪一年的题了 不过结果还可以 这也为后来 辞职考研埋了根 由于长期从事英语相关的工作 而又想要圆自己大 学时学计算机的梦 说到底
  • es 中关于 term,match, text, keyword

    转自 https blog csdn net qq 38043440 article details 101678677 最近项目中使用了ElasticSearch 在使用基本的查询功能的时候 遇到些头疼的事情 有时候数据明明存在 用ter
  • ES命令: “track_total_hits“:true

    搜索type全部数据 GET test movie search 结果 took 2 耗费时间 毫秒 timed out false 是否超时 shards total 5 发送给全部5个分片 successful 5 skipped 0
  • vlc详细使用说明

    vlc的全名是Video Lan Client 是一个开源的 跨平台的视频播放器 VLC支持大量的音视频传输 封装和编码格式 完整的功能特性列表可以在这里获得http www videolan org vlc features html 下
  • 小米蓝牙耳机使用说明_小米真无线蓝牙耳机Air2 SE评测

    很多人都会把 小米Air2 SE 这款耳机 当成是上一代的阉割版本 其实完全没必要这么想 因为他们除了耳机有点像之外 其它几乎全不一样 甚至当两款独立的产品也是没问题的 这款耳机根据我的分析和体验 我觉得它在音质上和小米Air2s 几乎是差
  • React——简介、JSX、组件、传值 React Props、状态 React State

    环境搭建 npm i g create react app create react app myapp cd myapp npm start 一 简介 1 简介 React主要用于构建UI 你可以在React里传递多种类型的参数 如声明代
  • spring boot获取datasource为null_Spring讲解九

    Spring JDBC 数据访问 Spring JDBC是Spring所提供的持久层技术 它的主要目标是降低使用JDBC API的门槛 以一种更直接 更简介 更简单的方式使用JDBC API 在Spring JDBC里 仅需做那些与业务相关