자바 데이터 베 이 스 를 조작 하 는 일반적인 방법 (표 추가 삭제 검사)

16125 단어 자바
자바 데이터 베 이 스 를 조작 하 는 일반적인 방법 (표 추가 삭제 검사)
이렇게 하면 좋 은 점 이 매우 커서 매번 쓸 필요 가 없다.
01. sql 문장 쓰기
02. 조작 데이터베이스 핸들 가 져 오기
03. 파라미터 설정
04. sql 문 구 를 실행 합 니 다.
05. 조회 라면 값 을 부여 해 야 합 니 다.
이런 복잡 한 조작 들 은 이렇게 한 표 의 첨삭 과 수정 에 대해 조사 하 는 것 이 매우 편리 하 다.
여기 서 제 줄 마다 아주 상세 한 주석 이 있 습 니 다. 진지 하 게 보면 알 수 있 을 것 입 니 다. 그 안에 (반사, jdbc 조작 데이터 베이스, 메타 데이터, 링크, 가 변 인삼, 범 형, 유형 대상 등 일부 용법 을 가 져 왔 습 니 다)
사실 모든 용법 은 그리 어렵 지 않다. 중요 한 것 은 어떻게 사용 하 느 냐, 그리고 조합 하 는 것 이다.
//     
public static <T> List<T> query(String sql, Class<T> clazz, Object... param) {
	PreparedStatement ps = null;
	ResultSet set = null;
	List<T> result = null;
//      
			if (connection == null || connection.isClosed()) {
				getConnection();
			}
			//          
			ps = connection.prepareStatement(sql);
			//     
			for (int i = 1; i <= param.length; i++) {
				ps.setObject(i, param[i - 1]);
			}
			//   sql  
			set = ps.executeQuery();
			while (set.next()) {
				//      set                 set   
				if (result == null) {
					result = new ArrayList<T>();
				}
				//               c 
				//                    ,               ,                  
				//                      ,     new   
				Constructor<T> c = clazz.getDeclaredConstructor();
				//               (      ),                (  )
				T a = c.newInstance();
				//   set       (      ,        ),       ,        
				ResultSetMetaData rsmd = set.getMetaData();
			for (int i = 1; i <= rsmd.getColumnCount(); i++) {
				//                
				//   “_”          str      (  mysql            “_”  ),       
				String[] str = rsmd.getColumnName(i).toLowerCase().split("_");
				//           fieldName           
				String fieldName = "";
				//            ( “_”       ),  java     (      ),              ,            
				for (int j = 0; j < str.length; j++) {
					//   ,              ,           ,     
					if (j != 0) {
						str[j] = str[j].substring(0, 1).toUpperCase() + str[j].substring(1);
					}
					//             ,        (              java          , mysql             “_”   “_”       )
					fieldName += str[j];
				}
				//         ,          
				Field f = clazz.getDeclaredField(fieldName);
				//       ,                
				f.setAccessible(true);
				//      (                       ,               ),               
				f.set(a, set.getObject(fieldName));
				//                  
				result.add(a);
			}
		return result;
		}
//      
public static int update(String sql, Object... param) {
	PreparedStatement ps = null;
	int result = 0;
if (connection == null || connection.isClosed()) {
				getConnection();
			}
			//       
			ps = connection.prepareStatement(sql);
			//     
			for (int i = 1; i <= param.length; i++) {
				ps.setObject(i, param[i - 1]);
			}
			result = ps.executeUpdate();
			System.out.println("    ,   " + result + " !");

		return result;

주: 코드 에 이상 을 포착 해 야 합 니 다.
예 를 들 어 내 가 user 표 의 기록 을 다시 찾 으 려 면 그렇게 복잡 한 코드 를 쓸 필요 가 없다.
List users = Database.query("SELECT * FROM user , User.class);
이렇게 하면 user 표 의 모든 기록 을 조회 할 수 있다.

좋은 웹페이지 즐겨찾기