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

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

新規登録して質問してみよう
ただいま回答率
85.35%
JDBC

JDBC(Java DataBase Connectivity)は、Javaとリーレーショナルデータベースに接続させる基本的なAPIです。Java上でSQLステートメントを発行することで、データベースの種類に影響を受ないDB操作を可能とします。

Java

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

SQL

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

servlet

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

Q&A

0回答

3151閲覧

could not execute statementを解決したい

gagagagaga

総合スコア0

JDBC

JDBC(Java DataBase Connectivity)は、Javaとリーレーショナルデータベースに接続させる基本的なAPIです。Java上でSQLステートメントを発行することで、データベースの種類に影響を受ないDB操作を可能とします。

Java

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

SQL

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

servlet

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

0グッド

2クリップ

投稿2021/01/20 16:47

編集2021/01/20 17:11

Apachetikaを用いてpdfファイル内のテキストを抽出しSQLへの登録を行いたいと考えておりますがエラーに悩まされております。
以下コード:

Java

1protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 2     String _token = (String)request.getParameter("_token"); 3 if(_token != null && _token.equals(request.getSession().getId())) { 4 EntityManager re = DBUtil.createEntityManager(); 5 6 Report r = new Report(); 7 8 r.setName(request.getParameter("name")); 9 r.setAuthor(request.getParameter("author")); 10 r.setYear(request.getParameter("year")); 11 r.setMagazine(request.getParameter("magazine")); 12 r.setDepartment(Integer.parseInt(request.getParameter("department"))); 13 14 Part part = request.getPart("avatar"); 15 String name = this.getFileName(part); 16 r.setData(name); 17 18 Timestamp currentTime = new Timestamp(System.currentTimeMillis()); 19 r.setCreated_at(currentTime); 20 r.setUpdated_at(currentTime); 21 r.setDelete_flag(0); 22 23 List<String> errors = ReportValidator.validate(r, true); 24 if(errors.size() > 0) { 25 re.close(); 26 27 request.setAttribute("_token", request.getSession().getId()); 28 request.setAttribute("report", r); 29 request.setAttribute("errors", errors); 30 31 RequestDispatcher rd = request.getRequestDispatcher("/WEB-INF/views/reports/new.jsp"); 32 rd.forward(request, response); 33 } else { 34 re.getTransaction().begin(); 35 name = r.getId() + "_" + name; 36 part.write("/Users/---/new/" + name); 37 try { 38 AutoDetectParser parser = new AutoDetectParser(); 39 Metadata metaData = new Metadata(); 40 ParseContext context = new ParseContext(); 41 BodyContentHandler handler = new BodyContentHandler(); 42 parser.parse(new FileInputStream(new File("/Users/---/new/" + name)), handler, metaData, context); 43 String ret = handler.toString(); 44 r.setSearchdata(ret); 45 } catch (SAXException | TikaException e) { 46 // TODO 自動生成された catch ブロック 47 e.printStackTrace(); 48 } 49 r.setData(name); 50 re.persist(r); 51 re.flush(); 52 re.getTransaction().commit(); 53 request.getSession().setAttribute("flush", "登録が完了しました。"); 54 re.close(); 55 response.sendRedirect(request.getContextPath() + "/reports/index"); 56 } 57 } 58 } 59 private String getFileName(Part part) { 60 String name = null; 61 for (String dispotion : part.getHeader("Content-Disposition").split(";")) { 62 if (dispotion.trim().startsWith("filename")) { 63 name = dispotion.substring(dispotion.indexOf("=") + 1).replace("\"", "").trim(); 64 name = name.substring(name.lastIndexOf("\") + 1); 65 break; 66 } 67 } 68 return name; 69 } 70}

Java

1@Entity 2public class Report { 3    : 4 @Lob 5 @Column(name = "searchdata", nullable = false ,length = 1000000000) 6 private String searchdata; 7    : 8 } 9} 10

JSP

1<label for="searchdata"></label> 2<br /><br /> 3<input type="hidden" name="search" value="${report.searchdata}" />

HTTPステータス 500 - org.hibernate.exception.DataException: could not execute statement
type 例外レポート

メッセージ org.hibernate.exception.DataException: could not execute statement

説明 The server encountered an internal error that prevented it from fulfilling this request.

例外

javax.persistence.PersistenceException: org.hibernate.exception.DataException: could not execute statement
org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:149)
org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:157)
org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:164)
org.hibernate.internal.SessionImpl.firePersist(SessionImpl.java:789)
org.hibernate.internal.SessionImpl.persist(SessionImpl.java:767)
controllers.reports.ReportsCreateServlet.doPost(ReportsCreateServlet.java:99)
javax.servlet.http.HttpServlet.service(HttpServlet.java:648)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
filters.EncodingFilter.doFilter(EncodingFilter.java:38)
原因
org.hibernate.exception.DataException: could not execute statement
org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert(SQLExceptionTypeDelegate.java:52)
org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:42)
org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:111)
org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:97)
org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:178)
org.hibernate.dialect.identity.GetGeneratedKeysDelegate.executeAndExtract(GetGeneratedKeysDelegate.java:57)
org.hibernate.id.insert.AbstractReturningDelegate.performInsert(AbstractReturningDelegate.java:42)
org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2919)
org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:3490)
org.hibernate.action.internal.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:81)
org.hibernate.engine.spi.ActionQueue.execute(ActionQueue.java:636)
org.hibernate.engine.spi.ActionQueue.addResolvedEntityInsertAction(ActionQueue.java:281)
org.hibernate.engine.spi.ActionQueue.addInsertAction(ActionQueue.java:262)
org.hibernate.engine.spi.ActionQueue.addAction(ActionQueue.java:316)
org.hibernate.event.internal.AbstractSaveEventListener.addInsertAction(AbstractSaveEventListener.java:318)
org.hibernate.event.internal.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:275)
org.hibernate.event.internal.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:182)
org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:113)
org.hibernate.jpa.event.internal.core.JpaPersistEventListener.saveWithGeneratedId(JpaPersistEventListener.java:67)
org.hibernate.event.internal.DefaultPersistEventListener.entityIsTransient(DefaultPersistEventListener.java:189)
org.hibernate.event.internal.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:132)
org.hibernate.event.internal.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:58)
org.hibernate.internal.SessionImpl.firePersist(SessionImpl.java:782)
org.hibernate.internal.SessionImpl.persist(SessionImpl.java:767)
controllers.reports.ReportsCreateServlet.doPost(ReportsCreateServlet.java:99)
javax.servlet.http.HttpServlet.service(HttpServlet.java:648)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
filters.EncodingFilter.doFilter(EncodingFilter.java:38)
よろしくお願い致します。

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問