前提・実現したいこと
Eclipseとpostgresqlを接続したいのですが、なかなか接続できません。何度か試したところ、JDBCドライバの登録、URL、あたりが怪しいのですが自分でうまく修正して接続することができません。
構成はhtml,jsp,servlet,dao,beanを使って開発しています。
アドバイスいただけたら幸いです。よろしくお願いいたします。
InfoDAO.java
1import java.sql.Connection; 2import java.sql.DriverManager; 3import java.sql.PreparedStatement; 4import java.sql.ResultSet; 5import java.sql.SQLException; 6import java.util.ArrayList; 7import java.util.List; 8 9import la.bean.InfoBean; 10 11public class InfoDAO { 12 private Connection con; 13 14 public InfoDAO() throws DAOException { 15 getConnection(); 16 } 17 18 public List<InfoBean> findAll() throws DAOException { 19 if(con == null) 20 getConnection(); 21 PreparedStatement st = null; 22 ResultSet rs = null; 23 //SQL文の作成 24 try { 25 String sql = "SELECT * FROM emp"; 26 //prepareStatementオブジェクトの取得 27 st = con.prepareStatement(sql); 28 //SQLの実行 29 rs = st.executeQuery(); 30 //結果の取得および取得 31 List<InfoBean> list = new ArrayList<InfoBean>(); 32 while(rs.next()) { 33 int code = rs.getInt("code"); 34 String name = rs.getString("name"); 35 int age = rs.getInt("age"); 36 int tel = rs.getInt("tel"); 37 InfoBean bean = new InfoBean(code, name, age, tel); 38 list.add(bean); 39 } 40 //情報一覧をlistとして返す 41 return list; 42 }catch(Exception e) { 43 e.printStackTrace(); 44 throw new DAOException("レコードの取得に失敗しました"); 45 }finally { 46 try { 47 //リソースの開放 48 if(rs != null) rs.close(); 49 if(st != null) st.close(); 50 close(); 51 }catch(Exception e) { 52 throw new DAOException("リソースの開放に失敗しました"); 53 } 54 } 55 } 56 57 private void getConnection() throws DAOException{ 58 try { 59 //JDBCドライバの登録 60 Class.forName("org.postgresql.Driver"); 61 //URL、ユーザ名、パスワードの設定 62 String url ="jdbc:postgresql:PersonalData.sql"; 63 String user = "postgres"; 64 String pass = "himitu"; 65 //データベースの接続 66 con = DriverManager.getConnection(url, user, pass); 67 }catch (Exception e) { 68 throw new DAOException("接続に失敗しました"); 69 } 70 } 71 72 private void close() throws SQLException { 73 if(con != null) { 74 con.close(); 75 con = null; 76 } 77 } 78 79 80 81}
InfoBean.java
1 2package la.bean; 3 4import java.io.Serializable; 5 6public class InfoBean implements Serializable{ 7 private int code; 8 private String name; 9 private int age; 10 private int tel; 11 12 public InfoBean(int code, String name, int age, int tel) { 13 this.code = code; 14 this.name = name; 15 this.age = age; 16 this.tel = tel; 17 } 18 19 public InfoBean() { 20 21 // TODO 自動生成されたコンストラクター・スタブ 22 } 23 24 public int getCode() { 25 return code; 26 } 27 28 public void setCode(int code) { 29 this.code = code; 30 } 31 32 public String getName() { 33 return name; 34 } 35 36 public void setName(String name) { 37 this.name = name; 38 } 39 40 public int getAge() { 41 return age; 42 } 43 44 public void setAge(int age) { 45 this.age = age; 46 } 47 48 public int getTel() { 49 return tel; 50 } 51 52 public void setTel(int tel) { 53 this.tel = tel; 54 } 55 56 57 58 59 60}
showInfo.html
1 2<!DOCTYPE html> 3<html> 4<head> 5<meta charset="UTF-8"> 6<title>Show All Info</title> 7</head> 8<body> 9 10<a href="/jmaster2/InfoServlet">個人情報表示</a> 11 12 13</body> 14</html>
showinfo.jsp
1 2<%@ page language="java" contentType="text/html; charset=UTF-8" 3 pageEncoding="UTF-8"%> 4<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 5<!DOCTYPE html> 6<html> 7<head> 8<meta charset="UTF-8"> 9<title>Show All emp</title> 10</head> 11<body> 12<table border="1"> 13<tr><td>NO</td><td>名前</td><td>年齢</td><td>電話</td></tr> 14<c:forEach items="${infos}" var="info"> 15 <tr><td>${info.code}</td><td>${info.name}</td><td>${info.age}</td><td>${info.tel}</td></tr> 16</c:forEach> 17 18</body> 19</html> 20
PersonalData.sql
1DROP DATABASE IF EXISTS OSSDB_scripts_SJIS; 2CREATE DATABASE OSSDB_scripts_SJIS; 3DROP USER IF EXISTS student; 4CREATE USER student WITH PASSWORD 'himitu'; 5 6DROP TABLE IF EXISTS emp; 7 8CREATE TABLE emp ( 9 code INTEGER PRIMARY KEY, 10 name TEXT, 11 age INTEGER, 12 tel TEXT 13); 14 15INSERT INTO emp VALUES(1, '鈴木', 30,'03-1111-1111'); 16INSERT INTO emp VALUES(2, '山田', 28,'03-1441-1111'); 17INSERT INTO emp VALUES(3, '田中', 69,'03-1771-1111'); 18INSERT INTO emp VALUES(4, '涌井', 70,'03-1324-1111');
試したこと
urlを心当たりのあるものに変更したのですがうまくいきませんでした。
補足情報(FW/ツールのバージョンなど)
回答1件
あなたの回答
tips
プレビュー