多线程BaseDao实现在同一内存中实现多个连接对象

来源:互联网 发布:微软亚洲研究院 知乎 编辑:程序博客网 时间:2024/05/29 14:12
package cn.happy.tread5;


import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Scanner;


public class BaseDao {


public static final String driver = "com.mysql.jdbc.Driver";
Connection con = null;
PreparedStatement ps = null;
    ResultSet rs = null;


public Connection getConnection1(String url,String username,String password) throws Exception{
  Class.forName(driver);
  //什么条件下,构建connection对象
  if (con==null||con.isClosed()) {
  con=DriverManager.getConnection(url, username, password);
    }
  return con;
  }

public void  getAll(String url,String username,String password) throws Exception{
String sql="select * from attences"; 
con=getConnection1(url, username, password);
  ps = con.prepareStatement(sql);
  rs= ps.executeQuery();
  while (rs.next()) {
  System.out.println("==========");
System.out.println(rs.getString("empname"));
System.out.println("==========");
}
  }


public static void invok(final Info info) throws InterruptedException{
Thread t=  new Thread(new Runnable() {
           @Override
           public void run() {
               try {
new BaseDao().getAll(info.getUrl(),info.getUsername(),info.getPassword());
} catch (Exception e) {
e.printStackTrace();
}
           }


       });
    t.start();
         //1.sleep
    //t.sleep(1000);
    //2.join
    t.join();
}

public static void main(String[] args) throws InterruptedException {
 
while (true) {
Scanner input=new Scanner(System.in); 
System.out.println("url:");
String url=input.next();
System.out.println("username:");
String username=input.next();
String password="";
Info info=new Info();
info.setUrl(url);
info.setPassword(password);
info.setUsername(username);
invok(info);
}
}


}
阅读全文
0 0
原创粉丝点击