"DBService.java"의 두 판 사이의 차이

69번째 줄: 69번째 줄:
}
}
</source>
</source>
==같이 보기==
* [[Array.java]]
* [[Util.java]]


[[분류:Java]]
[[분류:Java]]

2019년 4월 20일 (토) 15:33 판

1 개요

package com.example.osb1;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class DBService {
	private static DBService instance = null;
	private DBService() {}
	public static DBService getDB() {
		if (instance == null) {
			synchronized (DBService.class) {
				if (instance == null) {
					instance = new DBService();
					instance.init();
				}
			}
		}
		return instance;
	}
	private Connection conn;
	public void init() {
		try {
			Class.forName("org.h2.Driver");
			conn = DriverManager.getConnection("jdbc:h2:~/test","sa","");
		} catch (SQLException e) {  
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
	}
	public void query(String sql) {
		query(sql, new String[]{});
	}
	public void query(String sql, String... args) {
		try {
			PreparedStatement pstmt = conn.prepareStatement(sql);
			for(int i=0; i<args.length; i++) pstmt.setString(i+1, args[i]);
			pstmt.executeUpdate();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
	public Array queryRows(String sql) {
		return queryRows(sql, new String[]{});
	}
	public Array queryRows(String sql, String... args) {
		try {
			PreparedStatement pstmt = conn.prepareStatement(sql);
			for(int i=0; i<args.length; i++) pstmt.setString(i+1, args[i]);
			ResultSet rs = pstmt.executeQuery();
			ResultSetMetaData md = rs.getMetaData();
			int columns = md.getColumnCount();
			Array rows = new Array();
			while(rs.next()){
				Array row = new Array();
				for(int i=1; i<=columns; ++i) row.put(md.getColumnName(i),rs.getObject(i).toString());
				rows.push(row);
			}
			return rows;
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return null;
	}
}

2 같이 보기

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}