質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

Q&A

解決済

1回答

795閲覧

Java言語 Accessへの接続後、テーブルへの書き込みを行いたい

Martin

総合スコア4

ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

0グッド

0クリップ

投稿2020/11/16 12:32

DBへの接続後、所定の入力されたデータのテーブルへの書き込みを行いたいと考えています。

しかし、処理をどこに書いてよいのかわからずに右往左往してしまっている状況です。(今回DBへの書き込みのみなので、詳しいプロジェクトの内容などは省略させていただきたいです。)

現在、try catch文を使用し、サーブレットのdoPostの中にDBへの処理を記述しています。(処理というと語弊があるので、接続のみという解釈でお願いいたします)

しかし、doPostの中にDBへの処理を記述するのは少し違和感があり、JSPへの文字列引き渡しのみに使っているのでTry Catch文にしないとエラーが出てしまいます。

新しくJavaプロジェクトファイルを作成しなければいけないのでしょうか?

どなたか、どこにDBへの接続に関する処理を記述したらよいのか、DBへのデータ更新はどのように記述すればよいのかをご助言ください。(以下にDBのファイル名とソースコードを掲載します。)

また、必要な情報等がございましたらコメントにて教えていただけますと幸いです。可能な限り開示したいと思います。

DBソースファイル名:Darabase3.accdb

ソースコード

Java言語

1package Form1; 2 3import java.io.IOException; 4import java.sql.*; 5 6import javax.servlet.RequestDispatcher; 7import javax.servlet.ServletException; 8import javax.servlet.annotation.WebServlet; 9import javax.servlet.http.HttpServlet; 10import javax.servlet.http.HttpServletRequest; 11import javax.servlet.http.HttpServletResponse; 12 13/** 14 * Servlet implementation class form1 15 */ 16@WebServlet("/form1") 17public class form1 extends HttpServlet { 18 private static final long serialVersionUID = 1L; 19 20 /** 21 * @see HttpServlet#HttpServlet() 22 */ 23 public form1() { 24 super(); 25 // TODO Auto-generated constructor stub 26 27 } 28 29 /** 30 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) 31 */ 32 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 33 // TODO Auto-generated method stub 34 System.out.println("Test1"); 35 String view = "/WEB-INF/view/NewForm.jsp"; 36 RequestDispatcher dispatcher = request.getRequestDispatcher(view); 37 38 dispatcher.forward(request, response); 39 } 40 41 /** 42 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) 43 */ 44 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 45 // TODO Auto-generated method stub 46 47 System.out.println("Test2"); 48 String value = request.getParameter("name"); 49 System.out.println(value); 50 String value1 = request.getParameter("Adress"); 51 System.out.println(value1); 52 String value2 = request.getParameter("callphone"); 53 System.out.println(value2); 54 String value3 = request.getParameter("nickname"); 55 System.out.println(value3); 56 String value4 = request.getParameter("password"); 57 System.out.println(value4); 58 59 request.setAttribute(value, "name"); 60 request.setAttribute(value1, "Adress"); 61 request.setAttribute(value2, "callphone"); 62 request.setAttribute(value3, "nickname"); 63 request.setAttribute(value4, "password"); 64 65 String view1 = "/WEB-INF/view/Result.jsp"; 66 RequestDispatcher dispatcher1 = request.getRequestDispatcher(view1); 67 68 dispatcher1.forward(request, response); 69 70 //DBへのデータ格納を行う処理 71 72 try { 73 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 74 } catch (ClassNotFoundException e) { 75 // TODO 自動生成された catch ブロック 76 e.printStackTrace(); 77 } 78 Connection con = null; 79 try { 80 con = DriverManager.getConnection("jdbc:odbc:Database3.accdb"); 81 } catch (SQLException e) { 82 // TODO 自動生成された catch ブロック 83 e.printStackTrace(); 84 } 85 try { 86 Statement stmt = con.createStatement(); 87 } catch (SQLException e) { 88 // TODO 自動生成された catch ブロック 89 e.printStackTrace(); 90 } 91 92 93 //doGet(request, response); 94 } 95 96}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

データベースへの接続先のパスを正確に指定できていませんでした。

投稿2020/11/26 02:29

Martin

総合スコア4

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問