Quantcast
Channel: 質問!ITmedia 新着質問(Java/253)
Viewing all articles
Browse latest Browse all 2439

プログラム処理について質問です

$
0
0
お世話になります。 開発環境 データベース :: MySQL プログラム言語 :: Java SE7 フレームワーク :: Java EE 7 データベース設計概要 テーブル名所 language_code :: ja, zh-cn, zh-hk, ...その他言語コード locale :: 日本語、中国語(簡体)、中国語(香港)、...その他言語 truth_value :: 0 または、1 *truth_valueには、デフォルトで0を指定してます。 アプリケーション概要 ユーザーが複数の言語から使用する言語を選択して、選択した言語に紐付くコンテンツを作成するというものです。 プログラム処理について ユーザーが選択した複数の言語をサーブレットで取得しました。その後、取得したデータがNULLでないことを確認したうえで、データをDAOクラスに渡しプリペアードステートメントでアップデート処理をしました。 問題は、この処理だとユーザーが何らかの理由(誤操作)で、一回目に登録した言語を除外した場合、1から0にtruth_valueを変更できないということです。この問題を解決するにはどのような処理が必要としますか。皆様の知恵を御貸し下さい。よろしくお願いします。 実際のコードとユーザーが使用する画面の添付ファイルを載せてます。 サーブレット protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, SQLException, Exception { List useLanguageList = new ArrayList(); LanguageDTO useLanguage = null; String[] selectLanguages = request.getParameterValues("selectLanguage"); if(selectLanguages != null){ for(String lang : selectLanguages){ useLanguage = new LanguageDTO(); useLanguage.setLanguageCode(lang); useLanguageList.add(useLanguage); } LanguageDAO.updateLanguage(useLanguageList); } } DAOクラス public static void updateLanguage(List useLnaguageList) throws Exception{ Connection db = null; PreparedStatement ps = null; try{ Context context = new InitialContext(); DataSource ds = (DataSource)context.lookup("jdbc/ecommerce"); db = ds.getConnection(); ps = db.prepareStatement("update language_codes set truth_value = ? where language_code = ?;"); for(LanguageDTO useLanguage : useLnaguageList){ ps.setBoolean(1, useLanguage.getTruthValue()); ps.setString(2, useLanguage.getLanguageCode()); ps.executeUpdate(); } } catch (Exception e) { e.printStackTrace(); } finally { if(ps != null){ try { ps.close(); } catch (SQLException e) { e.printStackTrace(); } } if(db != null){ try { db.close(); } catch (SQLException e) { e.printStackTrace(); } } } }

Viewing all articles
Browse latest Browse all 2439

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>