JDBC의 패키지
데이터베이스를 연결하려면:
1. JDBC 드라이브 로드
2. 연결 매개변수 제공
3. 데이터베이스 연결 구축
4.statement 만들기
5. SQL 문 실행
6. 처리 결과
7. JDBC 객체 닫기
새 JDBCutil 클래스
package com.jdbc.utils;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class JDBCUtil
{
private final String USERNAME = "root"; //
private final String PASSWORD = "a123"; //
private final String DRIVER = "com.mysql.jdbc.Driver"; //
private final String URL = "jdbc:mysql://localhost:3306/test"; // url
private Connection connection; //
private PreparedStatement preparedStatement;// sql
private ResultSet resultSet; //
}
구조 함수에 드라이버를 등록하려면 다음과 같이 하십시오.
public JDBCUtil()
{
try
{
Class.forName(DRIVER); //
System.out.println(" ");
} catch (Exception e)
{
e.printStackTrace();
}
}
연결을 가져오려면 다음과 같이 하십시오.
public Connection getConnection()
{
try
{
//
connection = DriverManager.getConnection(URL, USERNAME, PASSWORD);
} catch (Exception e)
{
// TODO: handle exception
}
return connection;
}
업데이트 문을 실행하려면 다음과 같이 하십시오.
//
public boolean updateByPreparedStatement(String sql, List<Object> params)
throws SQLException
{
// sql
preparedStatement = connection.prepareStatement(sql);
// sql
if (params != null && !params.isEmpty())
{
for (int i = 0; i < params.size(); ++i)
{
preparedStatement.setObject(i + 1, params.get(i));
}
}
// update
int result = preparedStatement.executeUpdate();
return result > 0;
}
단일 질의 결과:
//
public Map<String, Object> findSimpleResult(String sql, List<Object> params)
throws SQLException
{
//map
Map<String, Object> map = new HashMap<String, Object>();
//
preparedStatement = connection.prepareStatement(sql);
if (params != null && !params.isEmpty())
{
for (int i = 0; i < params.size(); ++i)
{
preparedStatement.setObject(i + 1, params.get(i));
}
}
// sql
resultSet = preparedStatement.executeQuery();
//
ResultSetMetaData metaData = resultSet.getMetaData();
//
int colLen = metaData.getColumnCount();
while (resultSet.next())
{
// , map
for (int i = 0; i < colLen; ++i)
{
//
String colsName = metaData.getColumnName(i + 1);
// value
Object colsValue = resultSet.getObject(colsName);
if (colsValue == null)
{
colsValue = "";
}
// map
map.put(colsName, colsValue);
}
}
return map;
}
여러 결과 질의:
public List<Map<String, Object>> findMoreResult(String sql,
List<Object> params) throws SQLException
{
// map
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
preparedStatement = connection.prepareStatement(sql);
if (params != null && !params.isEmpty())
{
for (int i = 0; i < params.size(); ++i)
{
preparedStatement.setObject(i + 1, params.get(i));
}
}
resultSet = preparedStatement.executeQuery();
ResultSetMetaData metaData = resultSet.getMetaData();
int colLen = metaData.getColumnCount();
//
while (resultSet.next())
{
Map<String, Object> map = new HashMap<String, Object>();
for (int i = 0; i < colLen; ++i)
{
String colsName = metaData.getColumnName(i + 1);
Object colsValue = resultSet.getObject(colsName);
if (colsValue == null)
{
colsValue = "";
}
map.put(colsName, colsValue);
}
list.add(map);
}
return list;
}
연결을 해제하려면 다음과 같이 하십시오.
//
public void releaseConn()
{
if (resultSet != null)
{
try
{
resultSet.close();
} catch (Exception e)
{
// TODO: handle exception
e.printStackTrace();
}
}
if (preparedStatement != null)
{
try
{
preparedStatement.close();
} catch (Exception e)
{
// TODO: handle exception
e.printStackTrace();
}
}
if (connection != null)
{
try
{
connection.close();
} catch (Exception e)
{
// TODO: handle exception
e.printStackTrace();
}
}
}
테스트 코드는 다음과 같습니다.
public static void main(String[] args)
{
JDBCUtil jdbcUtil = new JDBCUtil();
jdbcUtil.getConnection();
String sql = "insert into person(name, age) values(?, ?)";
List<Object> params = new ArrayList<Object>();
params.add("rose");
params.add(123);
try
{
boolean flag = jdbcUtil.updateByPreparedStatement(sql, params);
System.out.println(flag);
} catch (Exception e)
{
// TODO: handle exception
e.printStackTrace();
}
sql = "select * from person where id = 1";
try
{
Map<String, Object> map = jdbcUtil.findSimpleResult(sql, null);
System.out.println(map);
} catch (Exception e)
{
// TODO: handle exception
e.printStackTrace();
}
System.out.println("--------------------------");
sql = "select * from person";
try
{
List<Map<String, Object>> list = jdbcUtil.findMoreResult(sql, null);
System.out.println(list);
} catch (Exception e)
{
// TODO: handle exception
e.printStackTrace();
}
}
다음에 Java의 반사 특성을 변경하여 찾기 함수를 덮어씁니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.