java运行job时需要传入数据库参数,kettle怎么设定数据库密码为参数

java运行job时需要传入数据库参数,kettle怎么设定数据库密码为参数,第1张

创建数据库

选择开始菜单中→程序→【Management SQL Server 2008】→【SQL Server Management Studio】命令,打开【SQL Server Management Studio】窗口,并使用Windows或 SQL Server身份验证建立连接。

在【对象资源管理器】窗口中展开服务器,然后选择【数据库】节点

右键单击【数据库】节点,从d出来的快捷菜单中选择【新建数据库】命令。

执行上述 *** 作后,会d出【新建数据库】对话框。在对话框、左侧有3个选项,分别是【常规】、【选项】和【文件组】。完成这三个选项中的设置会后,就完成了数据库的创建工作,

在【数据库名称】文本框中输入要新建数据库的名称。例如,这里以“新建的数据库”。

在【所有者】文本框中输入新建数据库的所有者,如sa。根据数据库的使用情况,选择启用或者禁用【使用全文索引】复选框。

在【数据库文件】列表中包括两行,一行是数据库文件,而另一行是日记文件。通过单击下面的【添加】、【删除】按钮添加或删除数据库文件。

切换到【选项页】、在这里可以设置数据库的排序规则、恢复模式、兼容级别和其他属性。

切换到【文件组】页,在这里可以添加或删除文件组。

完成以上 *** 作后,单击【确定】按钮关闭【新建数据库】对话框。至此“新建的数据”数据库创建成功。新建的数据库可以再【对象资源管理器】窗口看到。

修改数据库可以使用数据库本身的计划任务(job),这种方式最好。

第二种是使用程序来做如java的timer和timetask。保证在项目启动的时候启动该计划任务。

    public static void main(String[] args) {

        //定时任务

        final Timer timer = new Timer()

        // 指定任务在星期四中午12:00执行

        Calendar calendar = Calendar.getInstance()

        calendar.set(Calendar.DAY_OF_WEEK, Calendar.TUESDAY) 

        calendar.set(Calendar.HOUR_OF_DAY, 12)  

        calendar.set(Calendar.MINUTE, 00)  

        calendar.set(Calendar.SECOND, 0)  

        java.util.Date time = calendar.getTime()

        timer.schedule(new TimerTask() {

            public void run() {

                // 你要执行的 *** 作

                try{

                    

                } catch (Exception e) {

                    // 出现异常的 *** 作:如取消计划任务

                    timer.cancel()

                } 

            }

        },time)

    }

例如:

/**

* @author kevin zhou

*

* 在Java中实现Job Scheduling

* 创建日期 2004-7-13

*/

import java.util.TimerTask

import java.util.Calendar

import java.util.Date

import java.util.Timer

public class ReportGenerator extends TimerTask{

   /* (非 Javadoc)

    * @see java.util.TimerTask#run()

    */

   public void run() {

       System.out.println("Generating report")

}

}

class MainApplication {

 public static void main(String[] args) {

   Timer timer=new Timer()

   Calendar date = Calendar.getInstance()

   date.set(

     Calendar.DAY_OF_WEEK,

     Calendar.SUNDAY

   )

   date.set(Calendar.HOUR, 0)

   date.set(Calendar.MINUTE, 0)

   date.set(Calendar.SECOND, 0)

   date.set(Calendar.MILLISECOND, 0)

   // Schedule to run every Sunday in midnight

   timer.schedule(

     new ReportGenerator(),

     date.getTime(),

     1000 * 60 * 60 * 24 * 7

   )

 }

}

此处简单解释一下,在此例子中ReportGenerator继承java.util.TimerTask,它又继承了java.lang.Runnable,我们需要覆盖run()方法。

调用时用schedule()方法让它每周日0点0分执行,避开服务器高峰,实现Job Scheduling的目的。

补充:Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9976434.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存