spring中配置DButil数据源

2023-11-08

1、pom引入:

    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.20</version>
    </dependency>
    
   <dependency>
        <groupId>c3p0</groupId>
        <artifactId>c3p0</artifactId>
        <version>0.9.1.2</version>
    </dependency>

2、bean.xml配置:
(1)配置QueryRunner的bean
(2)配置出c3p0数据源
(3)配置component-scan去主动加载注解方式的类进入bean容器在这里插入图片描述
3、配置代码示例(增删盖查)

 package com.fang.dao.Impl;
 import com.fang.dao.AccountDao;
 import com.fang.pojo.Account;
 import org.apache.commons.dbutils.QueryRunner;
 import org.apache.commons.dbutils.handlers.BeanHandler;
 import org.apache.commons.dbutils.handlers.BeanListHandler;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Repository;

 import javax.annotation.Resource;
 import java.util.List;

@Repository
public class AccountDaoImpl implements AccountDao {

    public void saveAccount(){
        System.out.println("保存账户");
    }

    @Resource(name = "runner")
    private  QueryRunner  runner;

    @Override
    public Account findById(int id) {
        try{
           return runner.query("select * from account where id = ?",new BeanHandler<>(Account.class),id);
        }catch (Exception e){
            throw new RuntimeException(e);
        }
    }

    @Override
    public List<Account> findAll() {
        try{
            return runner.query("select * from account",new BeanListHandler<>(Account.class));
        }catch (Exception e){
            throw new RuntimeException(e);
        }
    }

    @Override
    public List<Account> findByName(String username) {
        try{
            return runner.query("select * from account where name = ?",new BeanListHandler<>(Account.class),username);
        }catch (Exception e){
            throw new RuntimeException(e);
        }
    }

    @Override
    public int insertOne(Account ac) {
        try{
            return runner.update("insert into account(name,count)values(?,?)",ac.getName(),ac.getAccount());
        }catch (Exception e){
            throw new RuntimeException(e);
        }
    }

    @Override
    public int updateOne(Account ac) {
        try{
            return runner.update("update account set name =?, count=? where id = ? ",ac.getName(),ac.getAccount(),ac.getId());
        }catch (Exception e){
            throw new RuntimeException(e);
        }
    }

    @Override
    public Boolean transfer(int sid, int toId, int count) {
        return null;
    }
}

4、测试:

import com.fang.dao.AccountDao;
import com.fang.pojo.Account;
import com.fang.service.IaccoutService;
import org.junit.jupiter.api.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import java.util.List;

public class ClientTest {
    @Test
    public void testFindAll(){
        ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");
        IaccoutService iaccoutService = context.getBean("accountService",IaccoutService.class);
        List<Account> accounts = iaccoutService.findAll();
        for (Account account:accounts) {
            System.out.println(account);
        }
    }
}

结果:
在这里插入图片描述

5、期间遇到的问题:
(1)问题1
Loading class com.mysql.jdbc.Driver'. This is deprecated. The new driver class iscom.mysql.cj.jdbc.Driver’. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.
解决方法:将加载数据库驱动的语句更改 com.mysql.cj.jdbc.Driver
数据pom中配置的是8.0.20版本
在这里插入图片描述
配置bean类是不能使用(com.mysql.jdbc.Driver)必须如下:

 <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="com.mysql.cj.jdbc.Driver"></property>
<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/test"></property>
<property name="user" value="root"></property>
<property name="password" value="123456"></property>

2、数据时区导致dataSource容器实例化失败:
java.sql.SQLException: The server time zone value ‘�й���׼ʱ��‘ is unrecognized or represents more tha
解决
报错原因:时区问题
查看时区
show variables like ‘%time_zone%’;
修改时区为中国的中8时区
set global time_zone=’+8:00’;

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

spring中配置DButil数据源 的相关文章

  • 如何为最终用户方便地启动Java GUI程序

    用户想要从以下位置启动 Java GUI 应用程序Windows 以及一些额外的 JVM 参数 例如 javaw Djava util logging config file logging properties jar MyGUI jar
  • Java new Date() 打印

    刚刚学习 Java 我知道这可能听起来很愚蠢 但我不得不问 System out print new Date 我知道参数中的任何内容都会转换为字符串 最终值是 new Date 返回对 Date 对象的引用 那么它是如何打印这个的呢 Mo
  • 如何使用 Java 和 Selenium WebDriver 在 C 目录中创建文件夹并需要将屏幕截图保存在该目录中?

    目前正在与硒网络驱动程序和代码Java 我有一种情况 我需要在 C 目录中创建一个文件夹 并在该文件夹中创建我通过 selenium Web 驱动程序代码拍摄的屏幕截图 它需要存储在带有时间戳的文件夹中 如果我每天按计划运行脚本 所有屏幕截
  • Java EE:如何获取我的应用程序的 URL?

    在 Java EE 中 如何动态检索应用程序的完整 URL 例如 如果 URL 是 localhost 8080 myapplication 我想要一个可以简单地将其作为字符串或其他形式返回给我的方法 我正在运行 GlassFish 作为应
  • Play框架运行应用程序问题

    每当我尝试运行使用以下命令创建的新 Web 应用程序时 我都会收到以下错误Play http www playframework org Error occurred during initialization of VM Could no
  • Java - 将节点添加到列表的末尾?

    这是我所拥有的 public class Node Object data Node next Node Object data Node next this data data this next next public Object g
  • Java JDBC:更改表

    我希望对此表进行以下修改 添加 状态列 varchar 20 日期列 时间戳 我不确定该怎么做 String createTable Create table aircraft aircraftNumber int airLineCompa
  • INSERT..RETURNING 在 JOOQ 中不起作用

    我有一个 MariaDB 数据库 我正在尝试在表中插入一行users 它有一个生成的id我想在插入后得到它 我见过this http www jooq org doc 3 8 manual sql building sql statemen
  • Liferay ClassNotFoundException:DLFileEntryImpl

    在我的 6 1 0 Portal 实例上 带有使用 ServiceBuilder 和 DL Api 的 6 1 0 SDK Portlet 这一行 DynamicQuery query DynamicQueryFactoryUtil for
  • 路径中 File.separator 和斜杠之间的区别

    使用有什么区别File separator和一个正常的 在 Java 路径字符串中 与双反斜杠相反 平台独立性似乎不是原因 因为两个版本都可以在 Windows 和 Unix 下运行 public class SlashTest Test
  • 禁止的软件包名称:java

    我尝试从数据库名称为 jaane 用户名 Hello 和密码 hello 获取数据 错误 java lang SecurityException Prohibited package name java at java lang Class
  • 如何为俚语和表情符号构建正则表达式 (regex)

    我需要构建一个正则表达式来匹配俚语 即 lol lmao imo 等 和表情符号 即 P 等 我按照以下示例进行操作http www coderanch com t 497238 java java Regular Expression D
  • getResourceAsStream() 可以找到 jar 文件之外的文件吗?

    我正在开发一个应用程序 该应用程序使用一个加载配置文件的库 InputStream in getClass getResourceAsStream resource 然后我的应用程序打包在一个 jar文件 如果resource是在里面 ja
  • 仅将 char[] 的一部分复制到 String 中

    我有一个数组 char ch 我的问题如下 如何将 ch 2 到 ch 7 的值合并到字符串中 我想在不循环 char 数组的情况下实现这一点 有什么建议么 感谢您花时间回答我的问题 Use new String value offset
  • Java执行器服务线程池[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 如果我使用 Executor 框架在
  • 静态变量的线程安全

    class ABC implements Runnable private static int a private static int b public void run 我有一个如上所述的 Java 类 我有这个类的多个线程 在里面r
  • 在 Maven 依赖项中指定 jar 和 test-jar 类型

    我有一个名为 commons 的项目 其中包含运行时和测试的常见内容 在主项目中 我添加了公共资源的依赖项
  • 当我从 Netbeans 创建 Derby 数据库时,它存储在哪里?

    当我从 netbeans 创建 Derby 数据库时 它存储在哪里 如何将它与项目的其余部分合并到一个文件夹中 右键单击Databases gt JavaDB in the Service查看并选择Properties This will
  • JGit 检查分支是否已签出

    我正在使用 JGit 开发一个项目 我设法删除了一个分支 但我还想检查该分支是否已签出 我发现了一个变量CheckoutCommand但它是私有的 private boolean isCheckoutIndex return startCo
  • 将 List 转换为 JSON

    Hi guys 有人可以帮助我 如何将我的 HQL 查询结果转换为带有对象列表的 JSON 并通过休息服务获取它 这是我的服务方法 它返回查询结果列表 Override public List

随机推荐

  • React学习笔记:useCallback与useMemo

    在react中 useCallback与useMemo的主要作用在于进行性能的一个优化 这两者要怎么使用呢 另外这两者之间又有什么关系 在使用React时 当我们某一个值发生改变时 整个页面都会重新渲染一次 哪怕是一些没有任何变化的组件 函
  • Windows安装MySQL出现错误2503 2502 的解决办法

    1 打开任务管理器 Ctrl shift ESC 2 点击文件按钮 3 点击 运行新任务 按钮 4 输入下载好的MySQL安装文件的地址 文件名 比如我放在D MySQL文件夹里 文件名为 mysql installer web commu
  • 弹出层中的新建表单

    当用户访问一个展示了某个列表的页面 想新建一项但又不想跳转页面时 可以用 Modal 弹出一个表单 用户填写必要信息后创建新的项 Modal对话框 何时使用 需要用户处理事务 又不希望跳转页面以致打断工作流程时 可以使用 Modal 在当前
  • 13道C++面试问答(内存管理)

    new delete和malloc free之间有什么关系 int p new int 2 int q int malloc 2 sizeof int new与delete直接带具体类型的指针 malloc和free返回void类型的指针
  • python-爬虫-selenium总结

    爬虫 提示 写完文章后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 爬虫 前言 使用场景 一 前期准备工作 二 基本的操作 案例 使用selenium利用验证码识别平台 超级鹰 进行各种类型验证码验证 验证根据图像识别验证码输
  • JS:正则表达式中的替换 replace(内容包含匹配模式)

    replace 方法可以实现替换字符的操作 用来替换的参数可以是字符串或正则表达式 语法格式 第一个参数 被替换的可以是字符串也可以是正则表达式 第二个参数 替换为新的字符串 它返回的值是一个替换完的新字符串 需要接收过来 str repl
  • Ubuntu18.04下载vscode速度较快的方式

    各种原因导致自己重装系统 又再一次踏上了重装软件和文件配置的过程 在Linux操作系统上下载vscode一直是比慢的意见事 下载vscode我了解的大概有三种方式可以下载vscode 如果网速不是很理想的情况下 建议第三种方法 1 去官方文
  • .刷脸支付成为生活的重要组成部分

    在步入高速发展的信息化时代后 众多与互联网领域相关的产业开始崛起 在改变人们生活方式的同时 又极大的推动了社会的发展 在众多互联网产业当中 最引人注目的当属移动支付了 移动支付的诞生摒弃了以往繁琐的交易过程 把关键的部分交给一部手机 要说移
  • 处理器的计算能力如何计算

    我们常用双精度浮点运算能力衡量一个处理器的科学计算的能力 就是处理64bit小数点浮动数据的能力 支持AVX2的处理器的单指令的长度是256bit 每个intel核心假设包含2个FMA 一个FMA一个时钟周期可以进行2次乘或者加的运算 那么
  • mysql怎么卸载_怎样把mysql卸载干净?Mysql怎么卸载干净重装?

    很多朋友装mysql数据库时出现无法安装的情况 更可怕的是删除相关文件仍然无法安装 很伤脑筋 相信很多朋友都有过这种经历 其实导致数据无法安装的原因大多数是因为之前安装的Mysql数据没有卸载干净 导致第二次安装不 那么mysql安装失败后
  • 20、numpy——IO

    NumPy IO Numpy 可以读写磁盘上的文本数据或二进制数据 NumPy 为 ndarray 对象引入了一个简单的文件格式 npy npy 文件用于存储重建 ndarray 所需的数据 图形 dtype 和其他信息 常用的 IO 函数
  • C++笔记——std::min_element和std::max_element

    https blog csdn net breeze5428 article details 25918925 参考网页 http en cppreference com w cpp algorithm min element 主要有两种用
  • LangChain 手记 Conclusion结语

    整理并翻译自DeepLearning AI LangChain的官方课程 Conclusion Conclusion 结语 本系列短课展示了大量使用LangChain构建的大语言模型应用 包括处理用户反馈 文档上的问答系统甚至使用LLM来决
  • 艾伦·麦席森·图灵——如谜的解谜者

    艾伦 麦席森 图灵 Alan Mathison Turing 1912年6月23日 1954年6月7日 英国数学家 逻辑学家 被称为计算机科学之父 人工智能之父 科学美国人 这样评价图灵性情矛盾的一生 个人生活隐秘又喜欢大众读物和公共广播
  • Android 刘海屏全屏适配(沉溺式状态栏,隐藏状态栏)

    RequiresApi Build VERSION CODES LOLLIPOP override fun onCreate savedInstanceState Bundle super onCreate savedInstanceSta
  • 01-----Ubuntu16.04安装Gnome桌面环境

    从这篇起 我将使用Ubuntu16 04来搭建流媒体开发的环境 这是Ubuntu16 04空虚拟机的开始文章虚拟机下配置linux的网络上网 包括ssh gcc g 的安装 几乎所有软件的搭建都是从零开始 上面安装好能上网后 本篇将讲述关于
  • E: Sub-process /usr/bin/dpkg returned an error code (1)

    执行命令 apt update apt dist upgrade apt update apt dist upgrade 是由于apt get安装软件时出现了类似于 注意 根据搜索得知 var lib dpkg info下保存有各个软件包的
  • 2022年前端面试题整理,持续更新中

    端面试题整理 已同步到掘金 CSDN 掘金地址 https juejin cn post 7075332630417244173 CSDN 地址 https blog csdn net z1832729975 article details
  • 一种3D视频格式转换(H264 MVC至SBS / OU)方案

    本文尚处于草稿状态 提前公开仅供预览 前言 两年前我就想写这个话题的文章 但一直拖延到现在 因为我在等待SkyBox VR Player支持3D MVC 我在想 如果3D播放器已经支持播放3D MVC格式 那么MVC至SBS转换就没有必要
  • spring中配置DButil数据源

    1 pom引入