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

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

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

    BirdsHover

    ——路漫漫其修遠兮,吾將上下而爬樓梯!

      BlogJava :: 首頁 ::  :: 聯(lián)系 :: 聚合  :: 管理 ::
      21 隨筆 :: 8 文章 :: 34 評論 :: 0 Trackbacks
    import java.io.UnsupportedEncodingException;
    import java.sql.*;
    import java.util.ArrayList;
    import java.util.Hashtable;
    import javax.naming.*;
    import javax.sql.*;
    import org.apache.tomcat.dbcp.dbcp.BasicDataSource;

    /**
     * <strong>mysql數(shù)據(jù)庫操作幫助類</strong>
     * <p>
     * 包裝了mysql常用的操作方法。類似于SqlHelper在java中的實現(xiàn)。
     * </p>
     * 
     * 
    @author birdshover
     
    */
    public abstract class mysqlhelper {
        
    private static Boolean locker = false;
        
    /**
         * 測試使用方法,也可以直接使用,改方法應該只被調(diào)用一次。 用來注冊數(shù)據(jù)源。
         
    */
        
    public synchronized static void forTest() {
            
    if(locker)
                
    return;
            
    else
                locker 
    = true;
            BasicDataSource bdds 
    = new BasicDataSource();
            bdds.setDriverClassName(
    "org.gjt.mm.mysql.Driver");
            bdds.setUrl(
    "jdbc:mysql://localhost:3306/doclight?useUnicode=true&characterEncoding=UTF-8");
            bdds.setUsername(
    "root");
            bdds.setPassword(
    "123");
            bdds.setInitialSize(
    100);
            Hashtable env 
    = new Hashtable();
            env.put(
    "java.naming.factory.initial",
                    
    "org.apache.naming.java.javaURLContextFactory");
            
    try {
                InitialContext ict 
    = new InitialContext(env);
                ict.bind(
    "MySQL", bdds);
            } 
    catch (Exception ex) {
                locker 
    = false;
                System.out.println(ex.getMessage());
            }
        }

        
    /**
         * 返回數(shù)據(jù)庫連接對象,連接失敗則返回null
         * 
         * 
    @return Connection
         
    */
        
    private static Connection getConnection() {
            
    try {
                InitialContext context 
    = new InitialContext();
                DataSource ds 
    = (DataSource) context.lookup("MySQL");
                
    return ds.getConnection();
            } 
    catch (NamingException ex) {
                
    return null;
            } 
    catch (SQLException ex) {
                
    return null;
            } 
    catch (Exception ex) {
                
    return null;
            }
        }

        
    /**
         * 無結(jié)果查詢,適用于更新和插入
         * 
         * 
    @param SQL語句
         * 
    @param 語句帶的參數(shù)
         * 
    @return 操作影響行數(shù)
         * 
    @throws SQLException
         * 
         * @example Object[] parms = new Object[2];<br/> parms[0] = "標題"; <br/>
         *          parms[1] = "內(nèi)容";<br/> int val = mysqlhelper.ExecuteNoneQuery(
         *          "insert into Documents(Title,Content) values (?,?)", parms);
         
    */
        
    public static int ExecuteNoneQuery(String cmdtext, Object[] parms)
                
    throws SQLException {
            PreparedStatement pstmt 
    = null;
            Connection conn 
    = null;
            
    try {
                conn 
    = getConnection();
                pstmt 
    = conn.prepareStatement(cmdtext);
                prepareCommand(pstmt, parms);
                
    return pstmt.executeUpdate();
            } 
    catch (Exception ex) {
                System.out.println(ex.getMessage());
            } 
    finally {
                
    if (pstmt != null){
                    pstmt.clearParameters();
                    pstmt.close();
                }
                
    if (conn != null)
                    conn.close();
                
            }
            
    return 0;
        }

        
    /**
         * 返回查詢結(jié)果集
         * 
         * 
    @param SQL語句
         * 
    @param 附帶參數(shù)
         * 
    @return 返回結(jié)果,用ArrayList包裝Object數(shù)組
         * 
    @throws SQLException
         * 
         * @example ArrayList list =
         *          mysqlhelper.ExecuteReader("Select * from Documents",null); <br/>
         *          for(int i = 0;i&lt;list.size();i++) { <br/> &nbsp;&nbsp;Object[]
         *          obs = (Object[])list.get(i); <br/> &nbsp;&nbsp;for(int j =
         *          0;j&lt;obs.length;j++) { <br/>
         *          &nbsp;&nbsp;&nbsp;&nbsp;out.print(obs[j].toString()); <br/>
         *          &nbsp;&nbsp;} <br/> &nbsp;&nbsp;out.print("&lt;br/&gt;"); <br/>
         *          } <br/>
         * 
         
    */
        
    public static ArrayList ExecuteReader(String cmdtext, Object[] parms)
                
    throws SQLException {
            PreparedStatement pstmt 
    = null;
            Connection conn 
    = null;
            ResultSet rs 
    = null;
            
    try {
                conn 
    = getConnection();
                pstmt 
    = conn.prepareStatement(cmdtext);

                prepareCommand(pstmt, parms);
                rs 
    = pstmt.executeQuery();

                ArrayList al 
    = new ArrayList();
                ResultSetMetaData rsmd 
    = rs.getMetaData();
                
    int column = rsmd.getColumnCount();

                
    while (rs.next()) {
                    Object[] ob 
    = new Object[column];
                    
    for (int i = 1; i <= column; i++) {
                        ob[i 
    - 1= rs.getObject(i);
                    }
                    al.add(ob);
                }
                
    return al;

            } 
    catch (Exception ex) {
            }
            
    finally{
                
    if (rs != null)
                    rs.close();
                
    if (pstmt != null)
                    pstmt.close();
                
    if (conn != null)
                    conn.close();
            }
            
    return null;
        }

        
    /**
         * 返回第1行第1列數(shù)據(jù),一般用來查詢count值
         * 
         * 
    @param SQL語句
         * 
    @param 帶參數(shù)
         * 
    @return 值
         * 
    @throws SQLException
         
    */
        
    public static Object ExecuteScalar(String cmdtext, Object[] parms)
                
    throws SQLException {
            PreparedStatement pstmt 
    = null;
            Connection conn 
    = null;
            ResultSet rs 
    = null;
            
    try {
                conn 
    = getConnection();

                pstmt 
    = conn.prepareStatement(cmdtext);
                prepareCommand(pstmt, parms);

                rs 
    = pstmt.executeQuery();
                
    if (rs.next()) {
                    
    return rs.getObject(1);
                } 
    else {
                    
    return null;
                }
            } 
    catch (Exception e) {
                System.out.println(e.getMessage());
            } 
    finally {
                
    if (rs != null)
                    rs.close();
                
    if (pstmt != null)
                    pstmt.close();
                
    if (conn != null)
                    conn.close();
            }
            
    return null;
        }

        
    private static void prepareCommand(PreparedStatement pstmt, Object[] parms)
                
    throws SQLException, UnsupportedEncodingException {
            
    if (parms != null && parms.length > 0) {
                
    for (int i = 1; i < parms.length + 1; i++) {
                    Object item 
    = parms[i - 1];
                    String typeName 
    = item.getClass().getSimpleName();
                    
    if (typeName.equals("String")) { 
                        pstmt.setString(i, item.toString());
                    } 
    else if (typeName.equals("Integer")) {
                        pstmt.setInt(i, Integer.parseInt(item.toString()));
                    } 
    else if (typeName.equals("Date")) {
                        pstmt.setDate(i, Date.valueOf(item.toString()));
                    } 
    else {
                        pstmt.setObject(i, item);
                    }
                }
            }
        }
    }
    posted on 2008-10-12 13:27 Birdshover 閱讀(2311) 評論(2)  編輯  收藏

    評論

    # re: java操作mysql的幫助類,相當于C#的SqlHelper 2008-10-12 18:07 Birdshover
    bdds.setUrl("jdbc:mysql://localhost:3306/doclight?useUnicode=true&characterEncoding=UTF-8");
    解決中文亂碼,這里使用utf-8編碼  回復  更多評論
      

    # re: java操作mysql的幫助類,相當于C#的SqlHelper 2008-10-12 18:41 Birdshover
    犯了錯誤。。。。
    ExecuteReader方法的關閉加到catch里去了,加到finally里就好了  回復  更多評論
      


    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導航:
     
    主站蜘蛛池模板: 在线播放免费人成毛片乱码| 涩涩色中文综合亚洲| 亚洲AV日韩AV永久无码色欲 | 全黄性性激高免费视频| 亚洲国产精品综合久久久| 性无码免费一区二区三区在线| 亚洲综合色成在线播放| 七次郎成人免费线路视频| 亚洲乱码日产精品a级毛片久久| 男女男精品网站免费观看| 亚洲综合色视频在线观看| 中国videos性高清免费| 亚洲va久久久噜噜噜久久男同 | 免费国产黄网站在线看| 亚洲AV成人精品日韩一区18p| 男女作爱免费网站| 久久国产成人亚洲精品影院 | 污网站在线观看免费| 亚洲最大av无码网址| 国产做国产爱免费视频| 国产成人亚洲综合无码精品| 日韩免费无码视频一区二区三区 | 精品亚洲麻豆1区2区3区| 亚洲电影在线免费观看| 456亚洲人成影院在线观| 午夜神器成在线人成在线人免费| 国产精品亚洲а∨无码播放麻豆| 亚洲精品国产日韩无码AV永久免费网| 中文字幕视频免费在线观看 | 亚洲第一成年网站大全亚洲| 啦啦啦中文在线观看电视剧免费版| 久久亚洲AV成人无码国产电影| 区三区激情福利综合中文字幕在线一区亚洲视频1 | 免费无码作爱视频| 亚洲图片校园春色| 四虎永久精品免费观看| 光棍天堂免费手机观看在线观看| 亚洲va成无码人在线观看| 免费看国产一级片| 99在线观看精品免费99| 国产成人亚洲综合a∨|