この記事では、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を使用して毎日の自動チェックイン機能を実現する
XHTML は 3 つのドキュメント タイプ宣言を定義します。最もよく使用されるのは XHTML T...
この記事の例では、参考のために航空機戦争ゲームを実装するためのJSの具体的なコードを共有しています。...
MySQL を使用する場合、日付は通常、datetime や timestamp などの形式で保存さ...
目次1. 通常どのようなコンテンツを処理する必要があるか2. 基本的な考え方3. 具体的な実践の詳細...
目次背景質問問題分析と解決策新たな問題問題分析と解決策背景node-schedule スケジュール ...
目次BOM (ブラウザ オブジェクト モデル) 1. ウィンドウブラウザのウィンドウサイズを取得する...
Vue でタブ切り替えを実装する 3 つの方法1. v-showはコンテンツの切り替えを制御します1...
Nginx をインストールして試してみましょう。画像はクラスであり、コンテナはオブジェクトであること...
インストール前の作業: VMware Workstation がインストールされていることを確認し、...
1. 丸い境界線: CSSコードコンテンツをクリップボードにコピー境界線の半径: 4px ; 2....
Code Cloud を使用して Git コード ストレージ ウェアハウスを構築するhttps://...
目次1. ディレクティブカスタムディレクティブ2. ミックスイン3. 継承を拡張する4. 提供して注...
コードは次のようになります。 <!DOCTYPE html> <html> ...
この記事では、主に同じ親タグの左側と右側にある 2 つのボタンの CSS レイアウト方法を紹介し、皆...
この記事では、一般的な MySQL 最適化方法をいくつかまとめて簡単に紹介します。これは、フルタイム...