首页
留言板
友链
关于
Search
1
内测“合金弹头”嘿嘿
878 阅读
2
Nginx搭建一个简易的图床
814 阅读
3
Kettle循环遍历结果集作为参数传入转换
790 阅读
4
Apache Dubbo初步认识
426 阅读
5
Maven打包插件与idea
409 阅读
知识库
好奇猫
日常说
笔记本
登录
/
注册
Search
标签搜索
maven
Spring
vue
Java
Java代码
前端
idea
帆软
MySQL
git
CSS
游戏
Bootstrap
生活
网上冲浪
邮件配置
说说
Nginx
Excel
数据库调优
龙流
累计撰写
61
篇文章
累计收到
18
条评论
首页
栏目
知识库
好奇猫
日常说
笔记本
页面
留言板
友链
关于
搜索到
1
篇与
案例
的结果
2021-09-14
FTP文件同步监控 CSV数据分析拆分多个
概述{dotted startColor="#ff6c6c" endColor="#1989fa"/}{x}通过properties配置两个FTP服务器,可以同步某个文件夹内容{x}实现FileAlterationListener监控文件夹文件新增/改变{x}通过后缀筛选文件类型{x}apache.commons包获取FTP连接客户端{x}net.sourceforge.javacsv包操作scv文件pom文件1、首先建议养成先配置日志的习惯 <!-- 日志工具包 --> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>2.10.0</version> </dependency> <!--日志核心包--> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.10.0</version> </dependency> <!--slf4j的log4j实现类--> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-slf4j-impl</artifactId> <version>2.9.1</version> </dependency> <!--程序运行的时候检测用了哪种日志实现类--> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-jcl</artifactId> <version>2.9.1</version> </dependency> 2、使用到的工具包 <!--功能强大,操作文件,FTP连接--> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.3</version> </dependency> <!--快速读取和生成CSV文件--> <dependency> <groupId>net.sourceforge.javacsv</groupId> <artifactId>javacsv</artifactId> <version>2.0</version> </dependency>public class ITransferImpl implements ITransfer { @Override public void transferInner(String fromAccount, String outAccount, BigDecimal amount) { //使用java的JDBC //1、注册驱动 try { Class.forName("com.mysql.jdbc.Driver"); } catch (ClassNotFoundException e) { e.printStackTrace(); } Connection connection = null; //Statement statement = null; try { //2、获取连接 connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","root"); //3、执行SQL对象 // statement = connection.createStatement(); } catch (SQLException e) { e.printStackTrace(); } //4、查询转出账户余额是否大于转出金额 BigDecimal amount1 = null; String fromAccountSQL = "SELECT amount from ACCOUNT where accountid = ?"; try { PreparedStatement preparedStatement = connection.prepareStatement(fromAccountSQL); preparedStatement.setString(1,fromAccount); ResultSet resultSet = preparedStatement.executeQuery(); while (resultSet.next()){ amount1 = resultSet.getBigDecimal("amount"); if (amount.compareTo(amount1) == 1){ System.out.println("账户金额不足!"); return; } } //5、开启事务 connection.setAutoCommit(false); //6、更新转出账户余额 BigDecimal updateFromAccount = amount1.subtract(amount); String updateFromAccountSQL = "UPDATE ACCOUNT set amount = ? WHERE ACCOUNTID = ?"; PreparedStatement pps = connection.prepareStatement(updateFromAccountSQL); pps.setBigDecimal(1,updateFromAccount); pps.setString(2,fromAccount); pps.executeUpdate(); //7、更新转入账户余额 //7.1先查询转入账户余额 PreparedStatement ppsOut = connection.prepareStatement(fromAccountSQL); ppsOut.setString(1,outAccount); ResultSet resultSet1 = ppsOut.executeQuery(); BigDecimal amount2 = null; while (resultSet1.next()){ amount2 = resultSet1.getBigDecimal("amount"); } //7.2余额与转入额相加 BigDecimal updateOutAccount = amount2.add(amount); PreparedStatement ppsOutAccount = connection.prepareStatement(updateFromAccountSQL); //ppsOutAccount.setBigDecimal(1,updateOutAccount); ppsOutAccount.setString(2,outAccount); ppsOutAccount.executeUpdate(); //8、提交事务 connection.commit(); //9、关闭连接 connection.close(); } catch (SQLException e) { e.printStackTrace(); } } }
2021年09月14日
360 阅读
1 评论
0 点赞