<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    少年阿賓

    那些青春的歲月

      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 閱讀(456) 評論(0)  編輯  收藏 所屬分類: JavaMultithread
    主站蜘蛛池模板: 免费人成网站永久| 最新亚洲人成无码网站| 男人j进入女人j内部免费网站| 可以免费观看的一级毛片| 亚洲色www永久网站| 免费在线观看视频a| 亚洲av永久无码天堂网| 中文在线观看免费网站| 亚洲熟妇无码乱子AV电影| 光棍天堂免费手机观看在线观看| h在线观看视频免费网站| 亚洲女人18毛片水真多| 成人黄色免费网址| 亚洲中文字幕乱码AV波多JI | 久久久久亚洲av无码专区| 性色午夜视频免费男人的天堂| 亚洲卡一卡2卡三卡4卡无卡三| 亚洲日本在线免费观看| 亚洲砖码砖专无区2023| 哒哒哒免费视频观看在线www| gogo免费在线观看| 亚洲一区二区在线免费观看| 美女视频黄是免费的网址| 亚洲aⅴ无码专区在线观看| 亚洲视频人成在线播放| 最新亚洲人成无码网站| 亚洲宅男天堂在线观看无病毒| 毛片无码免费无码播放 | 亚洲精品成人在线| 久久成人免费电影| 亚洲色偷偷综合亚洲AV伊人蜜桃| 又粗又黄又猛又爽大片免费| 高清一区二区三区免费视频| 日韩亚洲产在线观看| 自拍偷自拍亚洲精品情侣| 四虎免费影院ww4164h| 午夜在线免费视频 | 亚洲区精品久久一区二区三区| 热久久精品免费视频| 亚洲AV无码一区二区三区网址| 亚洲色偷拍另类无码专区|