사용자로 이름을 쓸 때 이미 데이터베이스에있는이 이름의 성을 액세스해야합니다. 예를 들면 :
Enter a name: beste
beste's surname is: ozcaglar
내 코드를 실행할 때 출력으로 성을 볼 수 없습니다.
내 데이터베이스에는 name
, surname
및 no
(자동 증가) 열이 있습니다.
import java.sql.*;
import java.util.*;
public class ConnectionMySQL {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("Enter a name: ");
String isim = scan.next();
try {
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/student","root","");
//System.out.println("Connection success");
String query= "SELECT surname FROM student_table WHERE name='isim'";
Statement stm =conn.createStatement();
ResultSet rs= stm.executeQuery(query);
while (rs.next()) {
System.out.println("Name: " + rs.getString("name")+ " Surname: "+rs.getString("surname"));
}
}
catch (Exception e) {
System.err.println(e);
}
}
}
이 오류는 테이블에 "isim"이라는 열이 없음을 의미합니다.
아마도 당신은 다음과 같이 쓰려고 할 것입니다
SELECT surname FROM student_table WHERE name='isim'
?
편집 (코멘트에 따라) :
query = "SELECT surname FROM student_table WHERE name='" + isim + "'"
그러나 보안상의 이유로 실제 애플리케이션에서는 사용해서는 안됩니다 (SQL 주입 공격 허용).
실제 프로덕션 코드에서는 입력 문자열을 이스케이프하거나 매개 변수화 된 쿼리를 사용해야합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다