🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
INSERT

INSERTとは、行を追加する、コンピュータのデータベース言語SQLにおけるデータ操作言語(DML)ステートメントの1つである

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Java

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

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

servlet

Servletとは、Webページの動的な生成やデータ処理などをサーバ上で実行するために、Javaで作成されたプログラムです。 ショッピングサイトやオンラインバンキングといった、動的なウェブサイトの構築に用いられています。

Q&A

解決済

1回答

1649閲覧

SQLへのINSERT文に関して

beginner_7

総合スコア14

INSERT

INSERTとは、行を追加する、コンピュータのデータベース言語SQLにおけるデータ操作言語(DML)ステートメントの1つである

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Java

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

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

servlet

Servletとは、Webページの動的な生成やデータ処理などをサーバ上で実行するために、Javaで作成されたプログラムです。 ショッピングサイトやオンラインバンキングといった、動的なウェブサイトの構築に用いられています。

0グッド

0クリップ

投稿2019/10/19 15:54

お世話になります。JAVA初学者のものです。
現在ECLIPSEからMySQLへのINSERT文を実行したく試行錯誤しているのですが、
コード含めどうすれば良いのか分からないため質問をさせて頂ければ幸いです。

現在WEBアプリ上で入力された値をInsert_ServletでString型で受け取っており、
本来getParameterで受け取ったString型birthは登録先のSQLではDate型なため、java.sql.DateのvalueOfを使ってDate型に変換し、受け取った全ての値をUserBeanクラスにセット。

その後Daoの方でUserBeanクラスをインスタンス化し、実際にSQL分に値を詰めて実行。
…とこれでうまくいくかなと思っていたのですが、画像のようなエラーが出てしまいまして…

どうすればこのエラーを回避してINSERTを実行できるのか、
また、別でおかしい部分がありましたらご教示頂ければ幸いです。
どうかよろしくお願いいたします。

**「①Insert_Servlet」** protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); String loginId = request.getParameter("login_id"); String password = request.getParameter("login_password"); String userName = request.getParameter("login_username"); String birth = request.getParameter("login_birth"); Date sqlDate= Date.valueOf("birth"); UserBean ub = new UserBean(); ub.setLoginId(loginId); ub.setPassword(password); ub.setName(userName); ub.setBirthDate(sqlDate); } } **「②Insertを実行するDaoのコード」** public void addInfo() { UserBean ub = new UserBean(); Connection conn = null; PreparedStatement ps = null; try { conn = DBManager.getConnection(); String sql = "INSERT INTO UserManagement.user(login_id,name,birth_date,password)VALUES(?,'?','?','?')"; ps.setString(1, ub.getLoginId()); ps.setString(2, ub.getPassword()); ps.setDate(3, (Date) ub.getBirthDate()); ps.setString(4, ub.getName()); ps.executeUpdate(); return; } catch (SQLException e) { e.printStackTrace(); } finally { if (conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } return; } **「③付随するbeanのコード」** package model; import java.io.Serializable; import java.util.Date; public class UserBean implements Serializable { private int id; private String loginId; private String name; private Date birthDate; private String password; private String createDate; private String updateDate; public UserBean() { } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getLoginId() { return loginId; } public void setLoginId(String loginId) { this.loginId = loginId; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Date getBirthDate() { return birthDate; } public void setBirthDate(Date birthDate) { this.birthDate = birthDate; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getCreateDate() { return createDate; } public void setCreateDate(String createDate) { this.createDate = createDate; } public String getUpdateDate() { return updateDate; } public void setUpdateDate(String updateDate) { this.updateDate = updateDate; } }

イメージ説明

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

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

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

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

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

guest

回答1

0

ベストアンサー

java

1Date sqlDate= Date.valueOf("birth");

ではなく、

java

1Date sqlDate= Date.valueOf(birth);

ではないかと思います。

投稿2019/10/19 17:29

A-pZ

総合スコア12011

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

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

beginner_7

2019/10/20 00:59

有難う御座います! お陰様で変換はうまくいったのではないかと思います! ただ如何せんINSERT分が実行できずでして… もし宜しければ最新の質問の回答もご教示頂ければ至極の極みで御座います。 どうぞよろしくお願い致します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問