少年阿賓

          那些青春的歲月

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            500 Posts :: 0 Stories :: 135 Comments :: 0 Trackbacks
          //ThreadLocal第一種用法:

          //建表:
          -- Create table
          create table USERBEAN
          (
            ID       NVARCHAR2(40) not null,
            USERNAME NVARCHAR2(40),
            PASSWORD NVARCHAR2(40)
          )
          tablespace USERS
            pctfree 10
            initrans 1
            maxtrans 255
            storage
            (
              initial 64K
              minextents 1
              maxextents unlimited
            );
          -- Create/Recreate primary, unique and foreign key constraints 
          alter table USERBEAN
            add constraint SSSID primary key (ID)
            using index 
            tablespace USERS
            pctfree 10
            initrans 2
            maxtrans 255
            storage
            (
              initial 64K
              minextents 1
              maxextents unlimited
            );





          package com.abin.lee.collection.threadlocal;
          import java.sql.Connection;
          import java.sql.DriverManager;
          import java.sql.SQLException;
          public class MyThreadLocal {
          //使用ThreadLocal保存Connection變量
          public static ThreadLocal<Connection> threadLocal = new ThreadLocal<Connection>();
          private static final String URL = "jdbc:oracle:thin:@localhost:1521:XE";
          private static final String USERNAME = "abing";
          private static final String PWD = "abing";
          public static Connection getConnection() {
          Connection connection = null;
          String url = "";
          //如果connThreadLocal沒有本線程對應的Connection創建一個新的Connection,并將其保存到線程本地變量中。
          if (threadLocal.get() == null) {
          try {
          Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
          connection = DriverManager.getConnection(URL, USERNAME, PWD);
          threadLocal.set(connection);
          } catch (Exception e) {
          e.printStackTrace();
          }
          }else {
          return threadLocal.get();//直接返回線程本地變量
          }
          return connection;
          }
          public static void remove() {
          threadLocal.remove();
          }
          }




          package com.abin.lee.collection.threadlocal;
          import java.io.Serializable;
          public class UserBean implements Serializable{
          private String id;
          private String username;
          private String password;
          public String getId() {
          return id;
          }
          public void setId(String id) {
          this.id = id;
          }
          public String getUsername() {
          return username;
          }
          public void setUsername(String username) {
          this.username = username;
          }
          public String getPassword() {
          return password;
          }
          public void setPassword(String password) {
          this.password = password;
          }
          }





          //測試代碼
          package com.abin.lee.collection.threadlocal;
          import java.sql.Connection;
          import java.sql.PreparedStatement;
          import java.sql.ResultSet;
          import java.util.ArrayList;
          import java.util.List;
          public class OracleOperate {
          public static List<UserBean> findAll(){
          Connection conn=null;
          PreparedStatement ps=null;
          ResultSet rs=null;
          String sql="select * from userbean order by id desc";
          List<UserBean> list=new ArrayList<UserBean>();
          UserBean user=null;
          try {
          conn=MyThreadLocal.getConnection();
          ps=conn.prepareStatement(sql);
          rs=ps.executeQuery();
          while (rs.next()&&rs!=null) {
          user=new UserBean();
          user.setId(rs.getString("id"));
          user.setUsername(rs.getString("username"));
          user.setPassword(rs.getString("password"));
          list.add(user);
          }
          } catch (Exception e) {
          e.printStackTrace();
          }
          return list;
          }
          public static void main(String[] args) {
          List<UserBean> list=findAll();
          for(UserBean lst:list){
          System.out.println("id="+lst.getId());
          System.out.println("username="+lst.getUsername());
          System.out.println("id="+lst.getPassword());
          }
          }
          }










          //ThreadLocal第二種用法: 
          package com.abin.lee.collection.threadlocal;
          import java.sql.Connection;
          import java.sql.DriverManager;
          import java.sql.SQLException;
          public class MyThreadLocal {
          private static final String URL = "jdbc:oracle:thin:@localhost:1521:XE";
          private static final String USERNAME = "abing";
          private static final String PWD = "abing";
          //使用ThreadLocal保存Connection變量
          public static ThreadLocal<Connection> threadLocal = new ThreadLocal<Connection>(){
          protected Connection initialValue() {
          Connection connection = null;
          //如果connThreadLocal沒有本線程對應的Connection創建一個新的Connection,并將其保存到線程本地變量中。
          if (connection == null) {
          try {
          Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
          connection = DriverManager.getConnection(URL, USERNAME, PWD);
          } catch (Exception e) {
          e.printStackTrace();
          }
          }
          return connection;
          }
          };
          public static Connection getConnection() {
          return threadLocal.get();
          }
          public static void remove() {
          threadLocal.remove();
          }
          }




          package com.abin.lee.collection.threadlocal;
          import java.io.Serializable;
          public class UserBean implements Serializable{
          private String id;
          private String username;
          private String password;
          public String getId() {
          return id;
          }
          public void setId(String id) {
          this.id = id;
          }
          public String getUsername() {
          return username;
          }
          public void setUsername(String username) {
          this.username = username;
          }
          public String getPassword() {
          return password;
          }
          public void setPassword(String password) {
          this.password = password;
          }
          }






          package com.abin.lee.collection.threadlocal;
          import java.sql.Connection;
          import java.sql.PreparedStatement;
          import java.sql.ResultSet;
          import java.util.ArrayList;
          import java.util.List;
          public class OracleOperate {
          public static List<UserBean> findAll(){
          Connection conn=null;
          PreparedStatement ps=null;
          ResultSet rs=null;
          String sql="select * from userbean order by id desc";
          List<UserBean> list=new ArrayList<UserBean>();
          UserBean user=null;
          try {
          conn=MyThreadLocal.getConnection();
          ps=conn.prepareStatement(sql);
          rs=ps.executeQuery();
          while (rs.next()&&rs!=null) {
          user=new UserBean();
          user.setId(rs.getString("id"));
          user.setUsername(rs.getString("username"));
          user.setPassword(rs.getString("password"));
          list.add(user);
          }
          } catch (Exception e) {
          e.printStackTrace();
          }
          return list;
          }
          public static void main(String[] args) {
          List<UserBean> list=findAll();
          for(UserBean lst:list){
          System.out.println("id="+lst.getId());
          System.out.println("username="+lst.getUsername());
          System.out.println("id="+lst.getPassword());
          }
          }
          }
          posted on 2012-09-01 17:03 abin 閱讀(458) 評論(0)  編輯  收藏 所屬分類: JavaMultithread
          主站蜘蛛池模板: 密山市| 西宁市| 丘北县| 韶山市| 吴堡县| 荔浦县| 集贤县| 大英县| 高淳县| 墨脱县| 临城县| 义马市| 平遥县| 虞城县| 京山县| 嘉鱼县| 安国市| 亚东县| 察哈| 肇州县| 哈密市| 民勤县| 雷州市| 济南市| 东城区| 青海省| 潍坊市| 宽甸| 界首市| 花莲市| 桃源县| 区。| 阿尔山市| 元氏县| 东方市| 神池县| 淄博市| 会昌县| 安化县| 会同县| 青龙|