当前位置: 首页 > article >正文

关于项目移植过程中,如何在不修改java源程序的情况下,如何适应新环境下的mysql

关于项目移植过程中,如何在不修改java源程序的情况下,如何适应新环境下的mysql

解决这个问题的原因:

在我们将这个自己电脑里面写好的web项目部署到这个我们自己的云服务器之前,我们已经部署好了这个相应的环境,jdk,tomcat ,mysql ,如果我们只是将自己的web项目部署到这个tomcat下面的话,这个数据库很可能是连接不是上的,

原因是因为这个原来项目中的数据源的配置信息或者是这个数据库的连接信息,也就是自己电脑上面的程序工具类中的driverclass,url,password等数据库连接信息和云服务器上部署数据库不相同,

但是如果我们又回到自己电脑修改源代码,在删除云服务器上之前部署的原来的web项目,再启动,非常麻烦,所有我们需要使用一个方法,他要达到的目的是:

==只通过修改记事本中的一些对应的连接信息,运行程序之后,程序自动读取这个记事本,==换句话说,我们要将源程序中的写死的信息,改变为我们认为的输入数据库连接信息或者数据源配置信息。

结合以上原因以及我们最后所要达到的目的,我们对点餐系统进行具体的操作

我们改变之前的c3p0用xml文件配置的方式(这里可以自己百度了解下c3p0的三种实现方式)为java代码的方式

1.删除之前的xml文件(记得自己要保存起来)

2.创建一个properties文件在resource文件下

不同的数据源以及数据库的配置信息有不同的写法,具体写法可以写项目时候百度copy

propeties文件的作用 通过kv的方式来储存这个数据库的连接信息以及数据源的配置信息,所以下图中根据具体的名字来填写你要配置的信息尽量在名字前面加上前缀便于区分

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wrTTxpwP-1683039519971)(C:\Users\18249\AppData\Roaming\Typora\typora-user-images\image-20230402165828299.png)]

3.接下来创建一个java代码来根据对应的名字获取对应的值来配置c3p0

这个配置文件必须这样命名且必须放在resourecs下面

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6T1quB4F-1683039519972)(C:\Users\18249\AppData\Roaming\Typora\typora-user-images\image-20230402203620311.png)]

配置文件里面必须这样写

c3p0.driverClass=com.mysql.jdbc.Driver
c3p0.jdbcUrl=jdbc:mysql://127.0.0.1:3306/hotel?useUnicode=true&characterEncoding=utf8&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai
c3p0.user=root
c3p0.password=root
c3p0.maxPoolSize = 20
c3p0.minPoolSize = 3
c3p0.maxStatements = 30
c3p0.maxIdleTime = 150

v值自己修改,但是k值都要有并且开头要用c3p0,这里关乎后面的映射的问题,非常重要

4.写一个工具类

public class c3p0Utils {
    private static ComboPooledDataSource dataSource;

    public static Connection init() {
        try {
            //创建c3p0类
            dataSource = new ComboPooledDataSource();

            //创建连接
            Connection conn = dataSource.getConnection();
            return conn;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
}

这里的conn或自动对每个参数进行映射,如果缺少一个,就会出现问题

5.最后对自己的dao层实现类进行修改

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JwWDhgzD-1683039519973)(C:\Users\18249\AppData\Roaming\Typora\typora-user-images\image-20230402204341060.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1YgUXWiV-1683039519973)(C:\Users\18249\AppData\Roaming\Typora\typora-user-images\image-20230402204417574.png)]

最后的的数据也是成功的出来了

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-x28f5FYs-1683039519974)(C:\Users\18249\AppData\Roaming\Typora\typora-user-images\image-20230402204449389.png)]

结论:这个问题的解决可以简化一些操作,让数据库的连接信息或者是数据源的配置信息不再死写在java源码中,修改信息更加便捷


http://www.kler.cn/a/16945.html

相关文章:

  • WebGIS三维地图框架--Cesium
  • 结构体是否包含特定类型的成员变量
  • 前端--> nginx-->gateway产生的跨域问题分析
  • Lucene 和 Elasticsearch 中更好的二进制量化 (BBQ)
  • hadoop大数据平台
  • 使用electron-egg把vue项目在linux Ubuntu环境下打包并安装运行
  • web小游戏开发:华容道(完)
  • 功能齐全的 ESP32 智能手表,具有多个表盘、心率传感器硬件设计
  • Bizcharts 3.0 到 4.0 升级部分问题记录
  • 现代CMake高级教程 - 第 5 章:链接第三方库
  • spring1:核心和设计思想
  • Vue3中双向数据绑定与Pinia实践+JS数据引用的循环修改问题
  • 【Docker_windows】安装Docker桌面版
  • 2023哪款蓝牙耳机性价比高?200左右高性价比蓝牙耳机推荐
  • windows11 安装多个mysql8
  • 2019临沂中考数学解析
  • 2023年华中杯C题计算结果
  • 哪款蓝牙耳机便宜又好用?2023公认质量最好的蓝牙耳机推荐
  • GUI编程(一)
  • CSS(三)-- 伪类选择器与伪元素选择器
  • 【Java笔试强训 21】
  • 10. hr 综合面试题汇总
  • JavaScript (二) -- 基础语法
  • 测牛学堂:2023软件测试入门学习指南(测试理论之测试方法的分类总结)
  • Packet Tracer - 配置 RIPv2
  • 少年不懂孔乙己,读懂已是书中人