在javaWeb项目中,在Action中开启新线程的方法!

Action中的其他方法的代码在这里就省略了。只要在Action中加入以下的方法就可以实现在Action中开启一个新的线程了。

//开启一个新的线程
Thread thread = new Thread(new Runnable() {
//在run方法中写要执行的代码,如果要和数据库进行连接,就用传统的JDBC
@Override
public void run() {
final String IPAddress1 = UtilIP.getIPAddress(request);
Boolean b = GetHttp.isMobileDevice(request);
final String message1 = "/Backstage/Style/images/phone.png";
final String message2 = "/Backstage/Style/images/computer.png";

final String DBDRIVER = "com.mysql.jdbc.Driver";   
       final String DBURL = "jdbc:mysql://127.0.0.1:3306/sysi";   
       //现在使用的是mysql数据库,是直接连接的,所以此处必须有用户名和密码   
       final String USERNAME = "root";   
       final String PASSWORD = "root"; 
String clientMac="";
clientMac=UtilIP.getMACAddress2(IPAddress1);
//数据库连接对象   
                Connection conn = null;   
                //数据库操作对象   
                Statement stmt = null;   
                //1、加载驱动程序   
                try {   
                        Class.forName(DBDRIVER);   
                } catch (ClassNotFoundException e) {   
                        e.printStackTrace();   
                }   
                //2、连接数据库   
                //通过连接管理器连接数据库   
                try {   
                        //在连接的时候直接输入用户名和密码才可以连接   
                        conn = DriverManager.getConnection(DBURL,USERNAME,PASSWORD);   
                } catch (Exception e) {   
                        e.printStackTrace();   
                }   
                //3、向数据库中插入一条数据   
                try {   
                        stmt = conn.createStatement();   
                } catch (Exception e) {   
                        e.printStackTrace();   
                }   
                //4、执行语句   
                try {   
                if(b.equals(true)){
                    String sql = "update wf_longinlog wf set wf.client_mac= '"+clientMac+"',wf.IP_ADDRESS='"+IPAddress1+"',wf.LOGIN_STATUS='正常登陆"+message1+"' where wf.log_id='"+logIDString+"'";   
                    stmt.executeUpdate(sql);  
    }else{
    String sql = "update wf_longinlog wf set wf.client_mac= '"+clientMac+"',wf.IP_ADDRESS='"+IPAddress1+"',wf.LOGIN_STATUS='正常登陆"+message2+"' where wf.log_id='"+logIDString+"'";   
                    stmt.executeUpdate(sql);  
    }
                         
                } catch (Exception e) {   
                        e.printStackTrace();   
                }   
                //5、关闭操作  
                try {   
                        stmt.close();   
                        conn.close();   
                } catch (Exception e) {   
                        e.printStackTrace();   
                }   
//System.err.println("新线程启动了**********************************");

}
});
thread.start();


注意:这里面用到的外部变量都需要是final的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值