少年阿賓

          那些青春的歲月

            BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
            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沒有本線程對(duì)應(yīng)的Connection創(chuàng)建一個(gè)新的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;
          }
          }





          //測(cè)試代碼
          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沒有本線程對(duì)應(yīng)的Connection創(chuàng)建一個(gè)新的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) 評(píng)論(0)  編輯  收藏 所屬分類: JavaMultithread
          主站蜘蛛池模板: 莆田市| 辽阳县| 天津市| 资溪县| 新化县| 浪卡子县| 民权县| 大宁县| 准格尔旗| 黄冈市| 威信县| 嘉黎县| 南投县| 盐山县| 米易县| 焦作市| 廉江市| 恩平市| 武平县| 寿阳县| 曲麻莱县| 海晏县| 南城县| 榆社县| 绥阳县| 上高县| 清涧县| 茌平县| 金秀| 杭州市| 棋牌| 汕头市| 永靖县| 商丘市| 商洛市| 石楼县| 赣榆县| 新乡县| 高州市| 永兴县| 岳阳县|