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

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

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

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

servlet

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

Q&A

4回答

2650閲覧

servletについて

frolen

総合スコア11

SQL

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

servlet

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

0グッド

1クリップ

投稿2015/10/13 05:44

編集2015/10/13 06:52

現在サーブレットで簡単なアプリを作っているのですが行き詰ってます。
DBのテーブルに接続して結果を取得したいのですが下記の結果が出力されました。
testing US7ASCII against <abc>
PASSED LOSSY
testing US7ASCII against <ab?c>
PASSED LOSSY
testing US7ASCII against <XYZ>
PASSED LOSSY
testing US7ASCII against <longlonglonglong...>
PASSED LOSSY
testing WE8ISO8859P1 against <abc>
PASSED LOSSY
testing WE8ISO8859P1 against <ab?c>
PASSED LOSSY
testing WE8ISO8859P1 against <XYZ>
PASSED LOSSY
testing WE8ISO8859P1 against <longlonglonglong...>
PASSED LOSSY
testing AL24UTFFSS against <abc>
PASSED
testing AL24UTFFSS against <ab?c>
PASSED
testing AL24UTFFSS against <XYZ>
PASSED
testing AL24UTFFSS against <longlonglonglong...>
PASSED
testing UTF8 against <abc>
PASSED
testing UTF8 against <ab?c>
PASSED
testing UTF8 against <XYZ>
PASSED
testing UTF8 against <longlonglonglong...>
PASSED

現在使用しているeclipseには何もエラーが吐き出されてないのですがどうしたらテーブルの内容を出力できるでしょうか?
よろしくお願いします。

追記
servletでコンソールに出力しようとしていたのでservletの内容を追記します。
package controller;

import java.util.List;

import javax.servlet.annotation.WebServlet;
import dao.LoginDao;
import dto.Login;;

@WebServlet("/LoginServlet")
public class LoginServlet {
public static void main(String[] arge){
LoginDao logindao = new LoginDao();
List<Login>loglist = logindao.findAll();
for(Login Login : loglist){
System.out.println(Login.getid());
System.out.println(Login.getpass());
}
}
}

package dao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.annotation.WebServlet;

import dto.Login;

@WebServlet("/LoginDao")
public class LoginDao {
public List<Login> findAll(){
Connection conn = null;
List<Login> loginlist = new ArrayList<Login>();

try{ Class.forName("oracle.jdbc.driver.OracleDriver"); conn = DriverManager.getConnection("jdbc:oracle:thin:@:1521:xe", "namioka", "48697302nY"); String sql = "SELECT LOGIN_ID,PASS FROM LOGIN_SITUATION"; PreparedStatement pstmt = conn.prepareStatement(sql); ResultSet login = pstmt.executeQuery(); while(login.next()){ String id = login.getString("LOGIN_ID"); String pass = login.getString("PASS"); Login loglist = new Login(id,pass); loginlist.add(loglist); } }catch(SQLException | ClassNotFoundException e){ e.printStackTrace(); return null; }finally{ if(conn != null){ try{ conn.close(); }catch(SQLException e){ e.printStackTrace(); return null; } } } return loginlist; }

}

package dto;

import javax.servlet.annotation.WebServlet;

@WebServlet("/Login")
public class Login {
private String id;
private String pass;
public Login(){}
public Login(String id,String pass){
this.id = id;
this.pass = pass;
}
public String getid(){return id;}
public String getpass(){return pass;}
}

以上になります。
よろしくお願いします。

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

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

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

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

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

eripong

2015/10/13 10:06

JDBCドライバとOracleとJavaのバージョンを教えてください。
frolen

2015/10/14 01:33

ドライバ:ojdbc6_g.jar オラクル:oracle datebase 11g express edition java:1.8.0_60 になります
guest

回答4

0

こんばんは。

手元にOracleがないので未確認ですが、
そもそもDBへの接続がうまくいっていないように見えます。

そもそも、DBへの接続ができるか確認してもらえますか?
EclipseだとDBViewerなどのプラグインを入れてみて
確認できるかと思います。

http://stackoverflow.com/questions/3385976/code-runs-in-eclipse-but-gives-compilation-errors-cannot-resolve-symbol-in-cmd
https://community.oracle.com/thread/2532167

投稿2015/10/13 08:34

ijufumi

総合スコア276

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

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

frolen

2015/10/13 08:45

今試してみましたが問題はなかったです。
guest

0

こんにちは。

まずは、frolen さんが作っている Servlet のソースコード と html を添付してみましょう!
多分、これだけだと他の方でも状況を理解することが難しいためです。

投稿2015/10/13 05:53

YamaguchiKenya

総合スコア69

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

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

0

外しているかもしれませんが、Servlet自体が正しく動作できていないことはないでしょうか?

「@WebServlet」アノテーションを付与してServletクラスを作成する場合、「HttpServlet」クラスの継承が必要だったかと思います。
HttpServletに定義されている、doGet()メソッド、doPost()メソッドをオーバーライドしてサーブレットの処理を実装する必要があります。

また「@WebServlet」にてサーブレット名とURLパターンを指定するか、web.xmlにサーブレットの定義を記載する必要があります。
このあたりは正しく設定できており、サーブレットが動作しますでしょうか?

DB接続をしないシンプルなサーブレットをまずは作成し、サーブレットを正しく動作させることで、サーブレット実装の手順を確認できるかと思います。
以下ページの「Servlet 3.0サンプルコード」部分のようなシンプルなサーブレットが動作するようになれば、doGet()メソッド部分を独自のDB接続処理に書き換えていくと段階的に動作が確認できるかと思います。

投稿2015/10/25 04:41

takyafumin

総合スコア2335

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

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

0

これは、
oracle.sql.CharacterSetFactoryのmainメソッドを実行すると表示される結果のようです。
Oracle Database 11g Release 2 (11.2.0.4) JDBC Drivers
からダウンロードしたojdbc6.jarを使って同じ結果になることは確認しました。

ただ、なぜこれを実行した際の結果が出ているかはわかりません。
Java - JDBC Thin to Oracle
に、同じような問題があり、

Got it! It was an Eclipse issue with the Run Configuration.

と結論付けられていますが、具体的にどうRun Configurationが問題だったかは
書かれていません。

frolenさんの環境での実行時に、Run Configurationがどうなっているか、
確認して、画面キャプチャでいいので提示していただけませんか?

また、質問とは直接関係しませんが、気になる点があります。
LoginServletにmainメソッドを書いていますが、
Servletの実装になりません。どの様な書籍やサイトを参照されているでしょうか?
また、使用しているServletコンテナは何でしょうか?

投稿2015/10/14 08:18

eripong

総合スコア1546

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問