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

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

新規登録して質問してみよう
ただいま回答率
85.48%
DAO(Data Access Object)

DAO(Data Access Object)とは、データベースなどに保存するための操作を実装したオブジェクトのことです。データの永続化機構に抽象化されたインタフェースを提供し、データベースの詳細を隠蔽。ビジネスロジックとデータ操作も分離できます。

Java

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

SQL

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

Q&A

解決済

1回答

1817閲覧

数字のみ入力できるよう設定したい

lemon1027

総合スコア4

DAO(Data Access Object)

DAO(Data Access Object)とは、データベースなどに保存するための操作を実装したオブジェクトのことです。データの永続化機構に抽象化されたインタフェースを提供し、データベースの詳細を隠蔽。ビジネスロジックとデータ操作も分離できます。

Java

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

SQL

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

0グッド

0クリップ

投稿2021/06/23 00:51

社員データベースにある情報を、社員番号を入力すると削除できるプログラムを作っています。
数字以外の文字を入力した場合、「数値に変換できません。」を出力したいのですが、どのようにすればできるのかわかりません。
よろしくお願いいたします。

Java

1 public class SakuzyoGamen { 2 3 4 public static String SakuzyoInfo(KanrisyaDAO zinji) { 5 String input=null; 6 7 try { 8 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 9 ArrayList<Syain> syainList=null;; 10 11 while(true) { 12 System.out.println("削除したい社員の社員番号を入力してください"); 13 input = br.readLine(); 14 if(!input.equals("")) { 15 String sql="select * from employee e join department d on e.deptno =d.deptno where empno="+ Integer.parseInt(input); 16 syainList= zinji.doKensaku(sql); 17 if(syainList.size()!=0) { //該当社員がいなかった場合Whileを繰り返す 18 break; 19 } 20 } 21 } 22 23 Syain s= syainList.get(0); //該当社員をsに入れる 24 25 System.out.println("社員番号:"+s.getEmpno()); 26 System.out.println("氏:"+s.getLname()); 27 System.out.println("名:"+s.getFname()); 28 System.out.println("氏(カナ):"+s.getLkana()); 29 System.out.println("名(メイ):"+s.getFkana()); 30 System.out.println("パスワード"+s.getPassword()); 31 System.out.println("部署コード:"+s.getDeptno()); 32 33 }catch(IOException e) { 34 e.printStackTrace(); 35 } 36 37 String SQL="delete from employee where empno ="+Integer.parseInt(input); 38 39 return SQL; 40 } 41 } 42

Java

1public class MainSystem { 2 3 public static void main(String[] args) { 4 // TODO 自動生成されたメソッド・スタブ 5 6 String jdbcUrl="jdbc:mysql://localhost/eimsdb?serverTimezone=JST";//データベースに接続するためのURL 7 String user="eimsuser";//データベースに接続するためのユーザ名 8 String passwd="eimspass";//データベースに接続するためパスワード 9 10 11 try(Connection con = DriverManager.getConnection(jdbcUrl,user,passwd)){ 12 con.setTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED); 13 14 boolean fact=true; 15 while(fact) { 16 ArrayList<String> inf =LoginGamen.getLoginInfo(); 17 int empno = Integer.parseInt(inf.get(0)); 18 String password=inf.get(1); 19 20 fact=LoginControler.doLogin(con, empno, password); 21 } 22 23 fact=true; 24 String function; 25 String input=null; 26 if(LoginControler.getDeptname().equals("人事部")){ 27 KanrisyaDAO zinji =new KanrisyaDAO(con); 28 while(fact) { 29 function=FunctionListKanrisya.showFunctions(); 30 if(function.equals("検索")) { 31 ArrayList<Syain> syain =zinji.doKensaku(KensakuGamen.createSql()); 32 33 for(Syain s : syain) { 34 System.out.println(s); 35 } 36 37 }else if(function.equals("追加")) { 38 39 }else if(function.equals("削除")) { 40 con.setAutoCommit(false); 41 try { 42 String sql=SakuzyoGamen.SakuzyoInfo(zinji); 43 44 BufferedReader br =new BufferedReader(new InputStreamReader(System.in)); 45 System.out.println("上記の社員を削除しますか?(Y/N)"); 46 47 while(true) { 48 String yorn =br.readLine(); 49 if(yorn.equals("Y")) { 50 zinji.doSakuzyo(sql); 51 con.commit(); 52 System.out.println("情報の削除に成功しました"); 53 break; 54 }else if(yorn.equals("N")) { 55 System.out.println("情報は削除されませんでした"); 56 break; 57 }else { 58 System.out.println("YまたはNを入力してください"); 59 } 60 } 61 }catch(IOException e) { 62 e.printStackTrace(); 63 }catch(SQLException e) { 64 try { 65 con.rollback(); 66 System.out.println("エラーが発生しました"); 67 }catch(SQLException ex) { 68 ex.printStackTrace(); 69 } 70 } 71 if(con != null) { 72 try { 73 con.setAutoCommit(true); 74 }catch(SQLException e) { 75 e.printStackTrace(); 76 } 77 } 78 79 }else if(function.equals("変更")) { 80 con.setAutoCommit(false); 81 try { 82 String sql=HenkouGamen.henkouInfo(zinji);//部署コードのテーブルにない値の時対応してない 83 84 BufferedReader br =new BufferedReader(new InputStreamReader(System.in)); 85 System.out.println("以上のように社員情報を変更しますか(Y/N)"); 86 while(true) { 87 String yorn =br.readLine(); 88 if(yorn.equals("Y")) { 89 zinji.doHenkou(sql); 90 con.commit(); 91 System.out.println("変更は適用されました"); 92 break; 93 }else if(yorn.equals("N")) { 94 System.out.println("変更は適用されませんでした"); 95 break; 96 }else { 97 System.out.println("YまたはNを入力してください"); 98 } 99 } 100 101 }catch(IOException e) { 102 e.printStackTrace(); 103 }catch(SQLException e) { 104 try { 105 con.rollback(); 106 System.out.println("エラーが発生しました"); 107 }catch(SQLException ex) { 108 ex.printStackTrace(); 109 } 110 } 111 112 if(con!=null) { 113 try{ 114 con.setAutoCommit(true); 115 }catch(SQLException e) { 116 e.printStackTrace(); 117 } 118 } 119 } 120 input= LogoutGamen.doLogout(); 121 if(input.equals("Y")){ 122 break; 123 } 124 } 125 }else { 126 SyainDAO syain = new SyainDAO(con); 127 while(fact) { 128 function=FunctionListSyain.showFunctions(); 129 if(function.equals("検索")) { 130 ArrayList<Syain> sList =syain.doKensaku(KensakuGamen.createSql()); 131 132 for(Syain s : sList) { 133 System.out.println(s); 134 } 135 } 136 input= LogoutGamen.doLogout(); 137 if(input.equals("Y")){ 138 break; 139 } 140 141 } 142 } 143 144 }catch(SQLException e) { 145 e.printStackTrace(); 146 } 147 148 } 149 150}

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

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

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

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

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

m.ts10806

2021/06/23 01:04

調べて何も出ないでしょうか。 まず調べてください。それを試してください。そこで何か起きたらまた調べる。 質問するのはもっと詰まってからです。 この質問内容からは何も調べず試さず考えることもなく丸投げしている印象しかうけません。
guest

回答1

0

ベストアンサー

数値以外を入力すると、何が起きますか?

java

1... empno="+ Integer.parseInt(input)

の部分で、NumberFormatExceptionが発生するのではないですか?だったらそれをキャッチして、

「数値に変換できません。」を出力

すればいい。

投稿2021/06/23 00:59

編集2021/06/23 01:01
shiketa

総合スコア3971

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問