前提・実現したいこと
前回の質問のあと分からないことが新たに
出ましたので質問させていただきます。
実現したいことと致しましては
前回と変わらず、7つあるカラムの内の5つ(customer,prodname,partname,part2name,partcode)
の何れでHTMLフォームから検索しても必要行を取得することです。
尚、項目を分かり易くするためカラム名を変更しております。
該当のソースコード
JSP
1<%@page import="java.util.*"%> 2<%@page import="java.sql.*"%> 3 4<%@ page language="java" contentType="text/html; charset=UTF-8" 5 pageEncoding="UTF-8"%> 6<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 7<html> 8<head> 9<meta http-equiv="Content-Type" content="text/html; charset="UTF-8"> 10 11<title>検索結果画面</title> 12</head> 13<body> 14 15 16<% 17 //変数定義 18 Connection conn = null; 19 PreparedStatement ps = null; 20 ResultSet rs = null; 21 22 try { 23 24 String dbURL = "jdbc:postgresql://localhost:5432/testdb"; 25 String user = "postgres"; 26 String pass = "takahashi"; 27 String key = "%"; 28 29 if(request.getParameter("key") != null) { 30 if(request.getParameter("key") != "") { 31 key = request.getParameter("key") + "%"; 32 } 33 } 34 35 System.out.println("*** key = " + key); 36 37 conn = DriverManager.getConnection(dbURL, user, pass); 38 39 40 String sql = "SELECT * from search_gaityu WHERE customer ILIKE ? or prodname ILIKE ? or partname ILIKE ? or part2name ILIKE ? or partcode ILIKE ? "; 41 42 ps = conn.prepareStatement(sql); 43 key = key.replace("*", "%"); 44 ps.setString(1, key); 45 ps.setString(2, key);//ok 46 ps.setString(3, key); 47 ps.setString(4, key); 48 ps.setString(5, key);//ok 49 50 51 52 //SELECTを実行する 53 rs = ps.executeQuery(); 54 55 //取得した結果を全件出力する 56 //out.println("<div class="table-scroll">"); 57 out.println("<table>"); 58 out.println("<tr><th>取引先</th><th>製品名</th><th>部品名</th><th>部品名2</th><th>部品コード</th><th>仕入値</th><th>備考</th</tr>"); 59 while(rs.next()){ 60 out.println("<tr>"); 61 out.print("<td>" + rs.getString("customer") + "</td>"); 62 out.print("<td>" + rs.getString("prodname") + "</td>"); 63 out.print("<td>" + rs.getString("partname") + "</td>"); 64 out.print("<td>" + rs.getString("part2name") + "</td>"); 65 out.print("<td>" + rs.getString("partcode") + "</td>"); 66 out.print("<td>" + rs.getString("stkvalue") + "</td>"); 67 out.print("<td>" + rs.getString("other") + "</td>"); 68 out.println("</tr>"); 69 } 70 out.println("</table>"); 71 //out.println("</div>"); 72 73 } catch (SQLException ex) { 74 ex.printStackTrace(); 75 } finally { 76 try { 77 if (conn != null && !conn.isClosed()) { 78 conn.close(); 79 } 80 } catch (SQLException ex) { 81 ex.printStackTrace(); 82 } 83 } 84%> 85</body> 86</html> 87
ダンプファイル(必要最低限のみ)
重要な部分は上部の情報だと思ったのでレコード自体は一部のみあげております。
dump
1-- 2-- PostgreSQL database dump 3-- 4 5-- Dumped from database version 11.1 6-- Dumped by pg_dump version 11.1 7 8SET statement_timeout = 0; 9SET lock_timeout = 0; 10SET idle_in_transaction_session_timeout = 0; 11SET client_encoding = 'UTF8'; 12SET standard_conforming_strings = on; 13SELECT pg_catalog.set_config('search_path', '', false); 14SET check_function_bodies = false; 15SET client_min_messages = warning; 16SET row_security = off; 17 18SET default_tablespace = ''; 19 20SET default_with_oids = false; 21 22-- 23-- Name: search_gaityu; Type: TABLE; Schema: public; Owner: postgres 24-- 25 26CREATE TABLE public.search_gaityu ( 27 customer character(80), 28 prodname character(80), 29 partname character(80), 30 part2name character(80), 31 partcode character(80), 32 stkvalue character(80), 33 other character(80) 34); 35 36 37ALTER TABLE public.search_gaityu OWNER TO postgres; 38 39-- 40-- Data for Name: search_gaityu; Type: TABLE DATA; Schema: public; Owner: postgres 41-- 42 43COPY public.search_gaityu (customer, prodname, partname, part2name, partcode, stkvalue, other) FROM stdin; 44(有)横山研磨 \N レバー \N 3232 059 0040 2 \N 45(有)横山研磨 TJ-35P2-BC/40A コンタクトノーズB \N \N 4,000.00 一式(100個) 46(有)横山研磨 TJ-35P2-BC/40A コンタクトノーズB \N \N 4,000.00 一式(200個) 47(有)横山研磨 TJ-35P2-BC/40A コンタクトノーズB \N \N 4,000.00 一式(300個) 48(有)横山研磨 TJ-35P2-BC/40A コンタクトノーズB \N \N 4,000.00 一式(360個) 49 50-- 51-- PostgreSQL database dump complete 52--
発生している問題・エラーメッセージ
前回と同じ表で説明させて頂きます。
現状といたしましては以下の製品名(prodname)と部品コード(partcode)の2項目は
検索フォームに入力して下記の1行をとってくることが出来るのですが
取引先と部品名からとってくることがどうしてもできません。
ここ ここ
↓ ↓
取引先 製品名 部品名 部品名2 部品コード 仕入値 備考
神澤工業所 RB441T(CE) ツメベース RB12625 5.00
### 試したこと 取引先と部品名の項目に含まれているデータは日本語なので エンコードの問題かと思い全て(html.jspファイル共に保存時にUTF8設定 HTMLにmeta charset="UTF-8"の追加)UTF-8で統一したのですが 状況は変わらず日本語で検索するとカラム名だけが上部に表示される状況です。 解決策を頂けると助かります。 ## 補足情報(FW/ツールのバージョンなど) ここにより詳細な情報を記載してください。

回答1件
あなたの回答
tips
プレビュー