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

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

詳細はこちら
Java

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

サーブレット

サーブレット(Servlets)とはウェブやアプリケーションサーバー上に動くプログラムのことであり、ウェブブラウザや他のHTTPクライエントとデータベースやHTTPサーバー上のアプリケーションの中間層としての働きをします。

データベース

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

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Apache Tomcat

Apache TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

Q&A

解決済

1回答

2973閲覧

ボタンを押すと日時がデータベースに格納されるようにできない

javas

総合スコア5

Java

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

サーブレット

サーブレット(Servlets)とはウェブやアプリケーションサーバー上に動くプログラムのことであり、ウェブブラウザや他のHTTPクライエントとデータベースやHTTPサーバー上のアプリケーションの中間層としての働きをします。

データベース

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

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Apache Tomcat

Apache TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

0グッド

0クリップ

投稿2019/11/11 04:35

編集2019/11/18 09:21

前提・実現したいこと

ボタンを押す(画面遷移)→現在の日時が表示され登録ボタンを押すとデータベースに日付が表示される(画面遷移)→登録完了画面

発生している問題・エラーメッセージ

登録ボタンを押して現在の日時がデータベースに登録される機能を実装中に以下のエラーメッセージが発生しました。

registerUsermodel.User@59452233 dao.DAOException: [UserDAO#insertMember]異常 at dao.MemberDao.insertMember(MemberDao.java:43) at model.RegisterUserLogic.exute(RegisterUserLogic.java:11) at servlet.RegisterUser.doGet(RegisterUser.java:57) at javax.servlet.http.HttpServlet.service(HttpServlet.java:622) at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:528) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1099) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:670) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1520) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1476) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:748) Caused by: java.sql.SQLException: No database selected at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:965) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3933) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3869) at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2524) at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2675) at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2465) at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1912) at com.mysql.jdbc.PreparedStatement.executeUpdateInternal(PreparedStatement.java:2133) at com.mysql.jdbc.PreparedStatement.executeUpdateInternal(PreparedStatement.java:2067) at com.mysql.jdbc.PreparedStatement.executeLargeUpdate(PreparedStatement.java:5175) at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2052) at dao.MemberDao.insertMember(MemberDao.java:41) ... 25 more

該当のソースコード

言語java
ソースコード

1.package model; 2.import java.io.Serializable; 3.import java.text.DateFormat; 4.import java.text.SimpleDateFormat; 5.import java.util.Date; 6.public class User implements Serializable { 7. 8. 9. private String nao; 10. public User() {} 11. public User(String nao){ 12. 13. this.nao = nao; 14. 15. 16. } 17. public String getToday() { 18. DateFormat to= new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); 19. Date today = new Date(); 20. String nao= to.format(today); 21. return nao; 22. } 23.} 1.package dao; 2. 3.import java.sql.Connection; 4.import java.sql.PreparedStatement; 5.import java.sql.SQLException; 6.import java.sql.Statement; 7. 8.import model.User; 9.public class MemberDao { 10. 11. private Connection con = null; 12. private Statement stmt =null; 13. private ConnectionManager cm; 14. 15. private void getConnection() throws DAOException{ 16. if ( this.con != null ){ return; } 17. cm = ConnectionManager.getInstance(); 18. con = cm.getConnection(); 19. } 20. 21. 22. private void createStmt() throws DAOException{ 23. if ( this.stmt != null){ return; } 24. try { 25. 26. stmt =con.createStatement(); 27. } catch (SQLException e) { 28. throw new DAOException("[createStmt]異常", e); 29. } 30. } 31. 32. public int insertMember(User user) throws DAOException { 33. getConnection(); 34. int count=0; 35. 36 String sql = "INSERT INTO documents (created_on) VALUE (?)"; 37. String nao =user.getToday(); 38. 39. try(PreparedStatement pstmt = con.prepareStatement(sql)) { 40. pstmt.setString(1, nao); 41. count=pstmt.executeUpdate(); 42. }catch(SQLException e) { 43. throw new DAOException("[UserDAO#insertMember]異常", e); 44. } finally { 45. close(); 46. } 47. return count; 48. } 49. 50. 51. public String setToday(String nao) { 52. // TODO 自動生成されたメソッド・スタブ 53. return null; 54. } 55. 56. 57. private void close() throws DAOException { 58. try { 59. if (stmt != null) { stmt.close(); } 60. } catch (SQLException e) { 61. throw new DAOException("[closeStatement]異常", e); 62. } finally { 63. this.stmt = null; 64. this.cm = null; 65. } 66. } 67.} 1.package model; 2. 3.import dao.DAOException; 4.import dao.MemberDao; 5.public class RegisterUserLogic { 6. MemberDao memberDao = new MemberDao(); 7. public boolean exute(User user){ 8. boolean registCheck = false; 9. //登録処理 10. try { 11. memberDao.insertMember(user); 12. 13. registCheck = true; 14. } catch (DAOException e) { 15. // TODO 16. e.printStackTrace(); 17. } 18. return registCheck; 19. } 20.} 1.package servlet; 2. 3.import java.io.IOException; 4. 5.import javax.servlet.RequestDispatcher; 6.import javax.servlet.ServletException; 7.import javax.servlet.annotation.WebServlet; 8.import javax.servlet.http.HttpServlet; 9.import javax.servlet.http.HttpServletRequest; 10.import javax.servlet.http.HttpServletResponse; 11.import javax.servlet.http.HttpSession; 12. 13.import model.RegisterUserLogic; 14. 15.import model.User; 16./** 17. * Servlet implementation class RegisterUser 18. */ 19.@WebServlet("/RegisterUser") 20.public class RegisterUser extends HttpServlet { 21. private static final long serialVersionUID = 1L; 22. 23. /** 24. * @see HttpServlet#HttpServlet() 25. */ 26. public RegisterUser() { 27. super(); 28. // TODO Auto-generated constructor stub 29. } 30. 31. /** 32. * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) 33. */ 34. protected void doGet(HttpServletRequest request, 57.HttpServletResponse response) 35.throws ServletException, IOException { 36.// // TODO Auto-generated method stub 37.// response.getWriter().append("Served at: 60.").append(request.getContextPath()); 38. 39. 40. String forwardPath = null; 41. 42. String action = request.getParameter("action"); 43. 44. 45. if(action == null){ 46. 47. 49. forwardPath = "/WEB-INF/jsp/Form.jsp"; 50. } 51. 52. else if(action.equals("done")){ 53. 54. HttpSession session = request.getSession(); 55. User to = (User)session.getAttribute("registerUser"); 56. 57. System.out.println( "registerUser"+ to); 58. 59. RegisterUserLogic logic = new RegisterUserLogic(); 60. logic.exute(to); 61. 62. 63. session.removeAttribute("registerUser"); 64. 65. 66. forwardPath = "/WEB-INF/jsp/Done.jsp"; 67. 68. } 69. 70. 71. RequestDispatcher dispatcher = 94.request.getRequestDispatcher(forwardPath); 72. dispatcher.forward(request, response); 73. } 74. 75. /** 76. * @see HttpServlet#doPost(HttpServletRequest request,HttpServletResponse response) 77. */ 78. protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 79.// 80. request.setCharacterEncoding("UTF-8"); 81. String nao=request.getParameter("created_on"); 82. User to = new User(nao); 83. HttpSession session = request.getSession(); 84. session.setAttribute("registerUser", to); 85. 86. RequestDispatcher dispatcher = request.getRequestDispatcher("/WEB- INF/jsp/Confirm.jsp"); 87. dispatcher.forward(request, response); 88. } 89.} ### 試したこと ・sql文の確認 ・ServetのtoPostでのデータ型の確認。 ・String型の登録パターンやDate型,DateFormat型で データベースに格納できるようにそれぞれ試してみた。 ・ String sql = "INSERT INTO documents (created_on) VALUE (?)"; のSQL文を INSERT INTO documents (created_on) VALUE (created_on);に 変更したらnllが格納された。 ### 補足情報(FW/ツールのバージョンなど) ツール Eclipse tomcate8.0.36 DBViewer MySQL5.7

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

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

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

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

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

m.ts10806

2019/11/11 06:01

タグはdateよりJavaにしたほうがアドバイスを得られやすいと思います(登録タグユーザー数の問題) あと、コードのマークダウンができてませんので、質問編集画面のプレビューで確認しつつ調整してください。
javas

2019/11/11 06:09

アドバイスありがとうございます。
m.ts10806

2019/11/11 06:12

伝わってないかもしれないので念のため。 質問は編集できますので適宜ご対応ください
guest

回答1

0

ベストアンサー

Caused by: java.sql.SQLException: No database selected

と出ていますので、データベースの接続設定を記載している箇所にて、

接続するデータベース名を記載するか、
SQL文のテーブル名の箇所を、データベース名.テーブル名の形に書き換えると良いでしょうか。

投稿2019/11/13 03:00

A-pZ

総合スコア12011

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

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

javas

2019/11/13 04:24

sql分以外のところばかり修正しようとしていました。 SQL文にデータベース名を追加したら無事に登録できました。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問