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

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

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

    BirdsHover

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

      BlogJava :: 首頁 ::  :: 聯系 :: 聚合  :: 管理 ::
      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數據庫操作幫助類</strong>
     * <p>
     * 包裝了mysql常用的操作方法。類似于SqlHelper在java中的實現。
     * </p>
     * 
     * 
    @author birdshover
     
    */
    public abstract class mysqlhelper {
        
    private static Boolean locker = false;
        
    /**
         * 測試使用方法,也可以直接使用,改方法應該只被調用一次。 用來注冊數據源。
         
    */
        
    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());
            }
        }

        
    /**
         * 返回數據庫連接對象,連接失敗則返回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;
            }
        }

        
    /**
         * 無結果查詢,適用于更新和插入
         * 
         * 
    @param SQL語句
         * 
    @param 語句帶的參數
         * 
    @return 操作影響行數
         * 
    @throws SQLException
         * 
         * @example Object[] parms = new Object[2];<br/> parms[0] = "標題"; <br/>
         *          parms[1] = "內容";<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;
        }

        
    /**
         * 返回查詢結果集
         * 
         * 
    @param SQL語句
         * 
    @param 附帶參數
         * 
    @return 返回結果,用ArrayList包裝Object數組
         * 
    @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列數據,一般用來查詢count值
         * 
         * 
    @param SQL語句
         * 
    @param 帶參數
         * 
    @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里就好了  回復  更多評論
      


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


    網站導航:
     
    主站蜘蛛池模板: 欧美a级成人网站免费| 青青青国产在线观看免费网站| 日本一区免费电影| 亚洲va久久久久| 99视频在线精品免费观看6| 亚洲人成777在线播放| 久久久久久免费视频| 亚洲中文字幕日本无线码| 成人性生交大片免费看无遮挡| 亚洲综合小说另类图片动图| 成人毛片免费观看视频| 亚洲色欲啪啪久久WWW综合网| 天天摸夜夜摸成人免费视频| 亚洲av中文无码乱人伦在线观看| 国产区卡一卡二卡三乱码免费| 九九久久精品国产免费看小说| 亚洲中文字幕无码中文字在线 | 亚洲日产韩国一二三四区| yy一级毛片免费视频| 亚洲欧洲美洲无码精品VA| 午夜免费啪视频在线观看| 亚洲另类图片另类电影| 免费a级毛片高清视频不卡 | 亚洲a级成人片在线观看| 日韩午夜免费视频| caoporn国产精品免费| 亚洲国产人成网站在线电影动漫| 2019中文字幕在线电影免费| 亚洲av无码片vr一区二区三区 | 一区二区视频免费观看| 亚洲中文字幕无码一区二区三区| 无码一区二区三区免费| 亚洲人成色777777老人头| 亚洲国模精品一区| 88av免费观看| 国产偷国产偷亚洲高清在线| 国产亚洲色婷婷久久99精品| 中文字幕无码不卡免费视频| 性生大片视频免费观看一级| 亚洲高清资源在线观看| 亚洲成A人片77777国产|