この記事では、Java接続MySQLの基礎となるカプセル化コードを参考までに紹介します。具体的な内容は次のとおりです。 データベースへの接続 パッケージ com.dao.db; java.sql.Connection をインポートします。 java.sql.SQLException をインポートします。 /** * データベース接続層 MYSQL * @author 管理者 * */ パブリッククラスDBConnection { /** * データベースに接続 * @return */ パブリック静的接続 getDBConnection() { // 1. ドライバーを登録する try { クラス.forName("com.mysql.jdbc.Driver"); } キャッチ (ClassNotFoundException e) { // TODO 自動生成されたキャッチブロック e.printStackTrace(); } // データベース接続を取得する try { 接続 conn = java.sql.DriverManager.getConnection("jdbc:mysql://localhost/mysql?useUnicode=true&characterEncoding=utf-8", "root", "root"); conn を返します。 } キャッチ (SQLException e1) { e1.printStackTrace(); } null を返します。 } } データ層のカプセル化 パッケージ com.dao.db; java.sql.Connection をインポートします。 java.sql.PreparedStatement をインポートします。 java.sql.ResultSet をインポートします。 java.sql.ResultSetMetaData をインポートします。 java.sql.SQLException をインポートします。 java.sql.Types をインポートします。 java.util.ArrayList をインポートします。 java.util.HashMap をインポートします。 /** * MYSQLデータベースの基礎となるカプセル化 * @author 管理者 * */ パブリッククラスDBManager{ プライベート PreparedStatement pstmt; プライベート接続 conn; プライベートResultSet rs; /** * データベースを開く */ パブリックDBManager() { DBConnection のインスタンスを作成します。 } /** * 変更および追加操作を実行する * @param coulmn * @パラメータ型 * @param sql * @戻る * @throwsSQLException 例外をスローします */ パブリック ブール型 updateOrAdd(String[] 列、int[] 型、String sql) は SQLException をスローします { if(!setPstmtParam(列、タイプ、SQL)) false を返します。 ブールフラグ = pstmt.executeUpdate()>0?true:false; DBを閉じる(); フラグを返します。 } /** * クエリ結果セットを取得 * @param coulmn * @パラメータ型 * @param sql * @throwsSQLException 例外をスローします */ パブリック DataTable getResultData(String[] 列、int[] 型、String sql) は SQLException をスローします { データテーブル dt = 新しいデータテーブル(); ArrayList<HashMap<String, String>>リスト = new ArrayList<HashMap<String, String>>(); if(!setPstmtParam(列、タイプ、SQL)) null を返します。 rs = pstmt.executeQuery(); ResultSetMetaData rsmd = rs.getMetaData(); //データベースの列名を取得します int numberOfColumns = rsmd.getColumnCount(); while(rs.next()) { HashMap<String, String> rsTree = 新しい HashMap<String, String>(); for(int r=1;r<列数+1;r++) { rsTree.put(rsmd.getColumnName(r),rs.getObject(r).toString()); } リストに追加します。 } DBを閉じる(); dt.setDataTable(リスト); dt を返します。 } /** * パラメータ設定 * @param 列 * @パラメータ型 * @throwsSQLException 例外をスローします * @throws 数値フォーマット例外 */ プライベートブール値setPstmtParam(String[] 列、int[] 型、String sql) は NumberFormatException、SQLException をスローします { if(sql== null) は false を返します。 pstmt = conn.prepareStatement(sql); if(列 != null && type != null && 列の長さ !=0 && type の長さ !=0 ) { (int i = 0; i<type.length; i++) の場合 { スイッチ(type[i]) { ケース Types.INTEGER: pstmt.setInt(i+1, Integer.parseInt(coulmn[i])); 壊す; ケースタイプ.BOOLEAN: pstmt.setBoolean(i+1, Boolean.parseBoolean(coulmn[i])); 壊す; ケースタイプ.CHAR: pstmt.setString(i+1, 列[i]); 壊す; ケース Types.DOUBLE: pstmt.setDouble(i+1, Double.parseDouble(coulmn[i])); 壊す; ケース Types.FLOAT: pstmt.setFloat(i+1, Float.parseFloat(coulmn[i])); 壊す; デフォルト: 壊す; } } } true を返します。 } /** * データベースを閉じる * @throws SQLException */ private void closeDB() は SQLException をスローします { if(rs != null) { rs.close(); } if(pstmt != null) { pstmt.close(); } if(conn != null) { 接続を閉じる(); } } } データセットのパッケージ化 パッケージ com.dao.db; java.util.ArrayList をインポートします。 java.util.HashMap をインポートします。 java.util.Iterator をインポートします。 java.util.Map をインポートします。 java.util.Set をインポートします。 /** * データセットのカプセル化 * @author 管理者 * */ パブリッククラスDataTable { public String[] column; //列フィールド public String[][] row; //行の値 public int rowCount = 0; //行数 public int colCoun = 0; //列数 public DataTable() { 素晴らしい(); } パブリック DataTable(String[] 列、String[][] 行、int 行数、int 列数) { 素晴らしい(); this.column = 列; this.row = 行; 行数 = 行数; this.colCoun = colCoun; } パブリック void setDataTable(ArrayList<HashMap<String, String>> リスト) { 行数 = リストのサイズ(); colCoun = list.get(0).size(); 列 = 新しい文字列[colCoun]; row = 新しい文字列[行数][列数]; (int i = 0; i < rowCount; i++) の場合 { Set<Map.Entry<String, String>> set = list.get(i).entrySet(); 整数j = 0; (Iterator<Map.Entry<String, String>> it = set.iterator(); it .hasNext();) { Map.Entry<String, String> エントリ = (Map.Entry<String, String>) it 。次(); 行[i][j] = エントリ.getValue(); i == 行数 - 1 の場合 列[j] = エントリ.getKey(); } j++; } } } パブリックString[] getColumn() { 戻り列; } パブリックvoid setColumn(String[]列) { this.column = 列; } パブリック文字列[][] getRow() { 行を返します。 } パブリック void setRow(String[][] row) { this.row = 行; } パブリック int getRowCount() { rowCount を返します。 } パブリック void setRowCount(int rowCount) { 行数 = 行数; } パブリック int getColCoun() { colCoun を返します。 } パブリック void setColCoun(int colCoun) { this.colCoun = colCoun; } } テストデモ パッケージ com.bussiness.test; java.sql.SQLException をインポートします。 java.sql.Types をインポートします。 com.dao.db.DBManager をインポートします。 com.dao.db.DataTable をインポートします。 パブリッククラスTestBusiness{ 静的文字列 searchSql = "スコアから * を選択"; static String insertSql = "score(name, age, score)values(?,?,?) に挿入"; static String deleteSql = "id = ?" のスコアから削除します。 static String updateSql = "スコアセット名を更新?、IDは?"; パブリック静的voidメイン(String[] args) { intsertData(); 検索データ(); } プライベート静的 void intsertData() { DBManager dm = 新しい DBManager(); String[]列 = new String[]{"wyf2", "23", "89.5"}; int[] type = new int[]{Types.CHAR、Types.INTEGER、Types.DOUBLE}; 試す { ブール値フラグ = dm.updateOrAdd(列、タイプ、挿入SQL); if(フラグ) System.out.println("挿入に成功しました"); } キャッチ (SQLException e) { e.printStackTrace(); } } プライベート静的void searchData() { DBManager dm = 新しい DBManager(); String[]列 = null; int[] 型 = null; 試す { データテーブル dt = dm.getResultData(列、タイプ、検索SQL); if(dt != null && dt.getRowCount() > 0){ for(int i = 0; i<dt.getRowCount(); i++) { for(int j = 0; j<dt.getColCoun(); j++) System.out.printf(dt.getRow()[i][j]+"\t"); システム出力のprintln(); } } それ以外 System.out.println("クエリに失敗しました"); } キャッチ (SQLException e) { e.printStackTrace(); } } } 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
>>: auto.jsを使用して毎日の自動チェックイン機能を実現する
HTML は、Baidu 百科事典のナビゲーション ドロップダウン メニュー機能を模倣します。具体的...
HTMLでは、中国語のフレーズ「學好好學」は「學好好學」と表現できます。プロジェクトでは、SMSアラ...
目次導入例要約する導入$属性すべての親コンポーネントのプロパティを継承します (props を通じて...
私はしばらくの間チャートをいじっていましたが、好奇心から、CSS を使用してチャートを作成するより良...
これは今日私が踏んだ4つの落とし穴を記念したものです...落とし穴1:地元のせいエラー:エラー 39...
1. 削除delete は、オブジェクトのプロパティを残さずに削除する唯一の方法ですが、その「代替」...
1. 要件の説明Divタグの右上隅に削除アイコンを表示します2. 実装html、CSS 3. 参照コ...
序文:今日、「<!DOCTYPE> タグを注意深く理解しましたか?」と尋ねられました。私...
この記事の例では、カレンダーウィジェットを実装するためのjsの具体的なコードを参考までに共有していま...
他のデバイスの画像をローカルディレクトリにマウントするなど、サーバー上の静的リソースにアクセスする必...
Win10 で csv をエクスポートする方法は 2 つあります。1 つ目はツールを使用することです...
目次1. シナリオの説明: 2. 事例のデモンストレーション: 2.1. MySQLの障害発生前にデ...
目次序文1. どのような変数が促進されますか? 2. 可変プロモーションがあるのはなぜですか? (1...
1. CSS、jQuery、Canvasを使用してアニメーションを作成する1. キャンバス利点: ...
MySQLインストーラをダウンロードする公式ダウンロードアドレス: http://dev.mysq...