JDBC(4)PreparedStatement
사전 컴 파일 대상 입 니 다.
Statement 의 하위 인터페이스 입 니 다.
데이터베이스 에 SQL 사전 컴 파일 허용
SQL 을 실행 할 때 SQL 문 구 를 다시 입력 할 필요 가 없습니다. SQL 문 구 를 컴 파일 했 습 니 다.
SQL 문 구 를 실행 합 니 다: execute Query () 또는 execute Update () 주의: SQL 문 구 를 더 이상 들 어 오지 마 십시오.
SQL 주입 을 효과적으로 방지 할 수 있 습 니 다.
방법:
->setXxxx (int index, Xxx value): 매개 변수 값 을 입력 합 니 다.
연결 / 닫 기 방법
public Connection getConnection() throws Exception {
String driver = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://localhost:3307/shijian";
String user = "root";
String password = "1234";
Class.forName(driver);
Connection connection = DriverManager.getConnection(url, user, password);
return connection;
//System.out.println(connection);
}
//
public void Close(ResultSet rs, Statement statement, Connection conn) {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (statement != null) {
try {
statement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
@Test
public void testPreparedStatementjdbc(){
Connection connection = null;
PreparedStatement preparedStatement = null;
try {
connection = getConnection();
String sql = "insert into student(sname,sclass) values(?,?)";
preparedStatement = (PreparedStatement) connection.prepareStatement(sql);
preparedStatement.setString(1, "lisi");
preparedStatement.setInt(2, 123456);
// SQL
preparedStatement.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}finally {
Close(null, preparedStatement, connection);
}
}
ResultSetMetaData
ResuleSet , ,
ResultSetMetaData : ResultSet getMetaData()
ResultSetMetaData
-->int getColumnLabel(int column) , 1
-->String getColumnCount() SQL
@Test
public void testResultMeteData(){
Connection connection = null;
PreparedStatement statement =null;
ResultSet resuleset = null;
try {
String sql = "select * from student where id = ?";
connection = testGetConnection();
statement = (PreparedStatement) connection.prepareStatement(sql);
statement.setInt(1, 2);
resuleset = statement.executeQuery();
//1. ResultSetMetaData
ResultSetMetaData rsmd = (ResultSetMetaData) resuleset.getMetaData();
//2.
Map values = new HashMap();
while(resuleset.next()){
for(int i = 0; i < rsmd.getColumnCount();i++){
String c = rsmd.getColumnLabel(i +1);
Object ovalue = resuleset.getObject(c);
//System.out.println(c + "--" + ovalue);
values.put(c, ovalue);
}
Class clazz = Student.class;
Object object = clazz.newInstance();
for(Map.Entry entry: values.entrySet()){
String sid = entry.getKey();
String sname = (String) entry.getValue();
System.out.println( sid + "--" + sname);
}
}
} catch (Exception e) {
e.printStackTrace();
}finally {
Close(resuleset, statement, connection);
}
}
다음으로 전송:https://www.cnblogs.com/Mrchengs/p/9780723.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.