package comlvjjentity;
import javautilDate;
import javautilTimerTask;
public class WrongTimerTask extends TimerTask {
private Date start; //开始时间
public Date getStart() {
return start;
}
public void setStart(Date start) {
thisstart = start;
}
public void run() {
//调用Dao层
if (true) {//DAO层满足条件
thiscancel();
}
Date d = new Date();//当前时间
try {
long t = dgetTime()- startgetTime(); //当前时间减去开始时间
if(t==120000)//2分钟
thiscancel();//退出
} catch (Exception e) {
// TODO Auto-generated catch block
eprintStackTrace();
}
}
}
------------------------上面是定时器类
package comlvjjmain;
import javautilDate;
import javautilTimer;
import comlvjjentityWrongTimerTask;
public class Time {
/
@param args
/
public static void main(String[] args) {
try {
WrongTimerTask task = new WrongTimerTask();
Timer timer = new Timer("TestTimer");
tasksetStart(new Date());
timerscheduleAtFixedRate(task, 0, 1000);
} catch (Exception e) {
eprintStackTrace();
}
}
}
-----------------------上面是测试执行类
你只要把定时器类的调用DAO层方法和Dao层满足的条件改一下就可以了
不清楚你想连接什么数据库 以下是一些数据库的连接:
mySQl:
Connection conn=null;
Statement st=null;
ResultSet rs=null;
try{
ClassforName("commysqljdbcDriver");
String url="jdbc:mysql://127001:3307/数据库名";
String user="root";
String password="";
conn= DriverManagergetConnection(url,user,password);
st=conncreateStatement();
}
catch(Exception e)
{
eprintStackTrace();
}
SQLSERVER:
Connection conn=null;
Statement st=null;
ResultSet rs=null;
PreparedStatement upst = null;
try{
ClassforName("commicrosoftjdbcsqlserverSQLServerDriver");
String url="jdbc:microsoft:sqlserver://127001:1433;DatabaseName=数据库名";
String user="sa";
String password="";
conn= DriverManagergetConnection(url,user,password);
}
catch(Exception e)
{
eprintStackTrace();
}
ORACLE:
try {
ClassforName("oraclejdbcdriverOracleDriver"); // 加载驱动类
// 注册JDBC驱动
DriverManagerregisterDriver(new oraclejdbcdriverOracleDriver());
String sourceURL = "jdbc:oracle:thin:@localhost::1521:orcl"; //localhost视具体情况需要改变
String user = "scott";//用户
String password = "tiger";//密码
con = DriverManagergetConnection(sourceURL,user,password); // 建立连接
}catch (Exception e){
eprintStackTrace();
}
执行SQL:类似的
stmt = conncreateStatement();
String sql = "insert into ……";// sql
stmtexecuteUpdate(sql);
这是老师发给我们的资料,共享给你:\x0d\Type 1: jdbc-odbc桥 \x0d\Jdbc-odbc 桥 是sun公司提供的,是jdk提供的的标准api 这种类型的驱动实际是把所有 jdbc的调用传递给odbc ,再由odbc调用本地数据库驱动代码( 本地数据库驱动代码是指 由数据库厂商提供的数据库 *** 作二进制代码库,例如在oracle for windows中就是oci dll 文 件) \x0d\\x0d\jdbc-odbc桥|odbc|厂商DB代码---数据库Server\x0d\\x0d\只要本地机装有相关的odbc驱动那么采用jdbc-odbc桥几乎可以访问所有的数据库,jdbc- odbc方法对于客户端已经具备odbc driver的应用还是可行的\x0d\\x0d\但是,由于jdbc-odbc先调用 odbc再由odbc去调用本地数据库接口访问数据库所以,执行效率比较低,对于那些大数据量 存取的应用是不适合的而且,这种方法要求客户端必须安装odbc 驱动,所以对于基于 internet ,intranet的应用也是不合适的因为,你不可能要求所有客户都能找到odbc driver \x0d\\x0d\=====一般ACCESS用到的比较多,初学者用。实际项目是不用的。\x0d\\x0d\Type 2: 本地Api驱动 \x0d\\x0d\本地api驱动直接把jdbc调用转变为数据库的标准调用再去访问数据库\x0d\\x0d\这种方法需要本地 数据库驱动代码 本地api驱动|厂商DB代码---数据库Server这种驱动比起jdbc-odbc桥执行效率大大提高了但是,它仍然需要在客户端加载数据库厂商 提供的代码库这样就不适合基于internet的应用并且,他的执行效率比起3,4型的jdbc驱动 还是不够高 \x0d\\x0d\Type3:网络协议驱动 这种驱动实际上是根据我们熟悉的三层结构建立的 jdbc先把对数局库的访问请求传递给网 络上的中间件服务器 中间件服务器再把请求翻译为符合数据库规范的调用,再把这种调用 传给数据库服务器如果中间件服务器也是用java开法的,那么在在中间层也可以使用1,2型 jdbc驱动程序作为访问数据库的方法 网络协议驱动--中间件服务器---数据库Server \x0d\\x0d\由于这种驱动是基于server的所以,它不需要在客户端加载数据库厂商提供的代码库而且 他在执行效率和可升级性方面是比较好的因为大部分功能实现都在server端,所以这种驱动 可以设计的很小,可以非常快速的加载到内存中 但是,这种驱动在中间件层仍然需要有配置 其它数据库驱动程序,并且由于多了一个中间层传递数据,它的执行效率还不是最好 \x0d\\x0d\Type4 纯JAVA驱动 \x0d\这种驱动直接把jdbc调用转换为符合相关数据库系统规范的请求由于4型驱动写的应用可 以直接和数据库服务器通讯这种类型的驱动完全由java实现,因此实现了平台独立性 本地协议驱动---------数据库Server \x0d\\x0d\由于这种驱动不需要先把jdbc的调用传给odbc或本地数据库接口或者是中间层服务器所 以它的执行效率是非常高的而且,它根本不需要在客户端或服务器端装载任何的软件或驱动 这种驱动程序可以动态的被下载但是对于不同的数据库需要下载不同的驱动程序 \x0d\\x0d\以上对四种类型的jdbc驱动做了一个说明那么它们适合那种类型的应用开发呢 \x0d\\x0d\Jdbc-odbc桥由于它的执行效率不高,更适合做为开发应用时的一种过度方案,或着对于初学 者了解jdbc编程也较适用 对于那些需要大数据量 *** 作的应用程序则应该考虑2,3,4型驱动在intranet方面的应用可以 考虑2型驱动,但是由于3,4型驱动在执行效率上比2型驱动有着明显的优势,而且目前开发 的趋势是使用纯java所以3,4型驱动也可以作为考虑对象 至于基于internet方面的应用就只有考虑3,4型驱动了 因为3型驱动可以把多种数据库驱 动都配置在中间层服务器所以3型驱动最适合那种需要同时连接多个不同种类的数据库, 并且对并发连接要求高的应用 4型驱动则适合那些连接单一数据库的工作组应用。\x0d\\x0d\现在是纯java 开发,所以一般都用type4的jdbc driver。
1. 加载一个对应数据库的JDBC驱动
在建立到一个数据库的连接之前,必须先加载这个数据库的JDBC驱动程序,加载之后此driver会自动注册到JDBC驱动列表中。加载一个JDBC驱动有两种方法。
a) 在命令行方式下指定驱动器或者用冒号分割驱动器列表:
具体命令如下:
C:\>java –Djdbcdrivers = comcompany1Driver:comcompany2Driver youProject
b)第二种方法,在程序中调用ClassforName()方法。推荐使用。。。。
try
{
String driverName = “comimaginarysqlmsqlMsqlDriver”;
ClassforName(driverName)newInstance();
}
Catch(ClassNotFoundException e1)
{
//catch could not find database driver exception
}
2连接到数据库。
根据您后台待连接的数据库不同,而有小小的差别。
a) 连接到Oracle数据库。
Connection connection = null ;
try
{
//load the jdbc driver ;
String driverName = “oraclejdbcdriverOracleDriver”;
ClassforName(driverName)newInstance();
//create a connection to the database;
String serverName = “127001”;
String serverPort = “1521”;
String serverID = “datebase1”
String userName = “hello”;
String userPsw = “world”;
String url = “jdbc:oraclethin:@” + serverName + “:” + serverPort + “:” + serverID ;
Connection = DriverManagergetConnection(url , userName , userPsw);
}
catch(ClassNotFoundException e1)
{
//catch could not find database driver exception
}
catch(SQLException e2)
{
//catch could not connect to the database exception
}
b) 连接到一个SQL Server数据库。
Connection connection = null ;
try
{
//load the jdbc driver ;
String driverName = “commicrosoftjdbcsqlserverSQLServerDriver”;
ClassforName(driverName)newInstance();
//create a connection to the database;
String serverName = “127001”;
String serverPort = “1433”;
String serverID = serverName + serverPort ;
String userName = “hello”;
String userPsw = “world”;
String url = “jdbc:JSQLConnect ://” + serverID ;
Connection = DriverManagergetConnection(url , userName , userPsw);
}
catch(ClassNotFoundException e1)
{
//catch could not find database driver exception
}
catch(SQLException e2)
{
//catch could not connect to the database exception
}
c) 连接到一个MySQL数据库上。。。。
Connection connection = null ;
try
{
//load the jdbc driver ;
String driverName = “orggjtmmmysqlDriver”;
ClassforName(driverName)newInstance();
//create a connection to the database;
String serverName = “127001”;
String serverID = “database”;
String userName = “hello”;
String userPsw = “world”;
String url = “jdbc:mysql ://” + serverName + “/” + serverID ;
Connection = DriverManagergetConnection(url , userName , userPsw);
}
catch(ClassNotFoundException e1)
{
//catch could not find database driver exception
}
catch(SQLException e2)
{
//catch could not connect to the database exception
}
综合上面的三种数据库连接方式 , 其实大同小异。由于访问不同的数据库和所使用的数据库驱动程序不同,所以导致代码表面上有小小不同,但透过表面看来,内部都是
1. 加载一个特定的数据库JDBC驱动。
2. 连接到一个数据库。
3. 之后,就可以对一个特定的数据库进行特定的 *** 作了。
附上各种数据库的JDBC驱动起可用信息网址:
>
以上就是关于java Action里面每隔5秒去调用一个dao数据库查询类,当返回值满足条件或者时间到2分钟就停止调用全部的内容,包括:java Action里面每隔5秒去调用一个dao数据库查询类,当返回值满足条件或者时间到2分钟就停止调用、如何在java中实现数据库语句的调用、java中连接数据库的方式,有JDBC还有什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)