通过Shell脚本用JDBC连数据库脱离项目框架执行Java业务流程

一.概述

如果项目中需要使用到定时任务来完成某些业务,一般有两种做法:定时任务依赖于项目;定时任务用批处理(windows执行)或者shell脚本(Linux)启动,不依赖于项目。

个人觉得,定时任务不依赖于项目的方式更优!独立执行,不会影响到应用的性能。

二.用jdbc连接数据库写业务

不能使用hibernate等高级方式,或者公司框架使用的高级工具。因为shell脚本不依赖于项目,独立执行的。

用jdbc写简单的增删改查业务的demo,具体可参考:http://blog.csdn.net/yanzi1225627/article/details/26950615

最后,把完成业务的类通过Eclipse导出成jar,用以shell调用。

三.批处理、shell脚本

bat文件:

.\jdk1.6.0\bin\java -Xms512m -Xmx512m -XX:NewRatio=3 -classpath .;./lib/mysql-connector-java-5.1.29.jar;./lib/match.jar com.test.web.Match

shell脚本:

/usr/java/jdk1.6.0_32/bin/java -Xms512m -Xmx512m -XX:NewRatio=3  -classpath ./match.jar:./mysql-connector-java-5.1.29.jar com.test.web.Match

其中,bat文件与shell脚本不同之处在于jdk所在路径不同

.\jdk1.6.0\bin  指定jdk路径

-Xms512m -Xmx512m -XX:NewRatio=3  配置跑当前脚本的内存

-classpath .;./lib/mysql-connector-java-5.1.29.jar;./lib/match.jar com.test.web.Match   跑当前脚本需要用到的jar,最后一个为自己编写且导出生成的jar。脚本会执行到Match.class的main方法

四.Eclipse导出jar流程

编译代码

定位到需要导出的Java文件

右键--export--选择导出类型为 JRE file --选择保存jar的路径--挑选main方法所在的Java文件--finish

详细操作指引可参考:http://www.cnblogs.com/lionden/archive/2013/03/10/2952604.html


时间: 2024-11-08 19:25:40

通过Shell脚本用JDBC连数据库脱离项目框架执行Java业务流程的相关文章

利用SHELL脚本来验证Oracle数据库RMAN备份集的有效性

利用SHELL脚本来验证Oracle数据库RMAN备份集的有效性 作者:赵全文  网名:guestart 我们生产环境的Oracle数据库都做了RMAN备份,是采用了一周的RMAN备份保留策略:除了使用RMAN备份以外,我们还使用了爱数(Eisoo)备份软件来进行备份,可以说是做到了有备无患.可是,如果有一天,Oracle数据库由于主机层面硬件原因或是数据库层面的原因不能对外提供高可用服务的时候,假设数据丢了一大部分,我们只有用RMAN备份来进行恢复,再如果发现,RMAN备份失效了,那就往地缝里

Shell脚本-----自动备份Mysql数据库

脚本的整体思路 1.定义需要的变量 2.利用for循环备份需要备份的库,并以库名-当天日期.sql命名,并记录相关日志 3.建立备份当天的日期的目录,向备份的Sql文件移动到该目录 4.压缩打包该目录,以节省空间,打包成功后删除该目录 5.备份目录只备份七天的数据库,第八天删除第一天的备份,目录只会存在连续七天的备份文件 6.查找备份目录下的.log日志文件,超过七天的删除 #!/bin/bash mysql_bin=/usr/local/tdoa/mysql/bin/mysqldump use

利用SHELL脚本实现将Oracle数据库的每日EXPDP导出文件复制到远程服务器

利用SHELL脚本实现将Oracle数据库的每日EXPDP导出文件复制到远程服务器 作者:赵全文 网名:guestart 我们有一套生产环境的Oracle数据库,虽然每天都有RMAN备份,但是也招架不住开发人员隔三差五就说要恢复几张表的前几天的数据到生产环境当中,针对这样的需求,用RMAN来恢复某几张表的数据就显的特别费劲了.于是我决定用Oracle数据库的逻辑备份工具EXPDP(数据泵导出)专门导出特定用户下的所有表的数据,并在每天凌晨4点通过LINUX操作系统的CRONTAB的计划任务定时执

shell 脚本实战笔记(8)--ssh免密码输入执行命令

前言: ssh命令, 没有指定密码的参数. 以至于在脚本中使用ssh命令的时候, 必须手动输入密码, 才能继续执行. 这样使得脚本的自动化执行变得很差, 尤其当ssh对应的机器数很多的时候, 会令人抓狂.本文讲解了两种方式, 一种借助expect脚本, 一种借助sshpass来实现. *) 借助expect脚本来实现1. expect不是系统自带的工具, 需要安装yum install expect -y 2. expect脚本的编写规则 1. [#!/usr/bin/expect] 告知系统脚

利用shell脚本实现对mysql数据库的备份

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 #!/bin/bash     #保存备份个数  number=3  #备份保存路径  backup_dir=/root/mysqlbackup  #日期  dd=`date +%Y%m%d`  #备份工具  tool=mysqldump  #用户名  username=mracale  #密码  pass

shell脚本,对MySQL数据库进行分库加分表备份

[[email protected] wyb]# cat table_backup.sh #!/bin/bash flag=0 user=root pass=test mysql -u$user -p"$pass" -e "show databases;" &>/dev/null [ $? -ne 0 ] && read -p "Mysql do not running,start it?(`echo -e "\03

SHELL脚本监控达梦数据库是否运行?

#!/bin/bash status=`/etc/init.d/DmServiceDMSERVER status | grep running | wc -l` process=`ps -ef | grep dmserver | grep -v grep | wc -l` port=`lsof -i:5236 | grep -i listen | wc -l` if [ $port -ne 0 ] && [ $process -ne 0 ] && [ $status -ne

通过JMS监听Oracle AQ,在数据库变化时触发执行Java程序

环境说明 一Oracle高级消息队列AQ 创建消息负荷payload 创建队列表 创建队列并启动 队列的停止和删除 入队消息 出队消息 二Java使用JMS监听并处理Oracle AQ队列 创建连接参数类 创建消息转换类 主类进行消息处理 三监控表记录变化通知Java 创建表 创建存储过程 创建触发器 环境说明 本实验环境基于Oracle 12C和JDK1.8,其中Oracle 12C支持多租户特性,相较于之前的Oracle版本,使用'C##用户名表示用户',例如如果数据库用户叫kevin,则登

[转]一个备份MySQL数据库的简单Shell脚本

本文翻译自 iSystemAdmin 的 <A Simple Shell Script to Backup MySQL Database> Shell脚本是我们写不同类型命令的一种脚本,这些命令在这一个文件中就可以执行.我们也可以逐一敲入命令手动执行.如果我们要使用shell脚本就必须在一开始把这些命令写到一个文本文件中,以后就可以随意反复运行这些命令了. 我首先要在本文带给你的是完整脚本.后面会对该脚本做说明.我假定你已经知道shell scripting. mysqldump和cronta