-
[JSP] 이클립스 JAVA 및 MSSQL(데이터베이스) 연동예제프로그램 소스/JSP 2020. 12. 29. 17:59반응형
[JSP] 이클립스 MSSQL(데이터베이스) 연동예제
1. Libraries에 sqljdbc4.jar파일을 추가해준다.
- 추가방법은 아래의 이전 포스팅을 차고해주세요^^
https://bp666.tistory.com/6?category=959586
[JSP] 이클립스 JSON .jar파일 추가 및 라이브러리 다운로드
[JSP] 이클립스 JSON .jar파일 추가 및 라이브러리 다운로드 ■ 이클립스에서 .jar파일 라이브러리에 추가하는 방법 1. 이클립스에서 프로젝트를 오른쪽클릭하여 Bulid Path - Configure Build Path로 들어갑
bp666.tistory.com
2. JSP - JAVA 데이터베이스 연동예제소스
<%@page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@page import="org.json.JSONObject"%> <%@page import="org.json.JSONArray"%> <jsp:useBean id="Conn" class="DB.DBcon" scope="page"></jsp:useBean> <% request.setCharacterEncoding("UTF-8"); String MEM_ID = request.getParameter("MEM_ID"); String MEM_PW = request.getParameter("MEM_PW"); String SAVE_ID = request.getParameter("SAVE_ID"); boolean DB연결 = Conn.Open(); //DB연결하기 if(DB연결){ boolean 쿼리실행; 쿼리실행 = Conn.Insert("Insert into BP_test(필드명1,필드명2,필드명3) values('데이터1','데이터2','데이터3')"); //데이터저장하기 if (쿼리실행){ String ret = ""; ret = Conn.Select("Select * from BP_test"); //저장된 데이터 불러오기 JSONArray Json_arr = null; JSONObject json = null; Json_arr = new JSONArray(ret); if (Json_arr.length() > 0) { json = (JSONObject) Json_arr.get(0); System.out.println(json.get("필드명1").toString()); System.out.println(json.get("필드명2").toString()); System.out.println(json.get("필드명3").toString()); } } Conn.Close(); } %>
3. JAVA - MSSQL 연동예제소스
- JAVA는 Server에서 작업을하고 요청한 JSP로 정보를 전달한다.
package DB; import java.sql.*; import java.util.LinkedHashMap; import javax.sql.*; import org.json.simple.JSONArray; import org.json.JSONObject; public class DBcon { Statement stmt = null; DataSource ds = null; public Connection conn; //데이터베이스 연결열기 public boolean Open(){ try { String Con_Str = ""; String IP = "", PORT = "", DB = "", ID = "", PW = ""; IP = "192.168.0.1"; PORT = "1433"; DB = "BP_TEST"; ID = "BP"; PW = "1234"; Con_Str = "jdbc:sqlserver://" + IP + ":" + PORT + ";databaseName=" + DB + ";user=" + ID + ";password=" + PW + ";"; Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); conn = DriverManager.getConnection(Con_Str); return true; } catch(Exception ex) { ex.printStackTrace(); return false; } } //데이터베이스 연결닫기 public void Close() { if (conn != null) { try { conn.close(); conn = null; } catch (Exception err) { err.printStackTrace(); } } } //Insert문 데이터저장 public Boolean Insert(String ISQL){ Boolean ret = false; PreparedStatement pstmt=null; try { pstmt = conn.prepareStatement(ISQL,ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); pstmt.executeUpdate(); pstmt.close(); pstmt = null; ret = true; }catch (Exception e) { ret = false; e.printStackTrace(); } return ret; } //Select문 데이터조회 public String Select(String ISQL){ String RetJson = ""; try { PreparedStatement pstmt = conn.prepareStatement(ISQL,ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); ResultSet rs = pstmt.executeQuery(); RetJson = Convert_JSON(rs); }catch (Exception e) { e.printStackTrace(); } return RetJson; } public String Convert_JSON(ResultSet rs){ JSONArray Json_arr = new JSONArray(); String ret = ""; try { ResultSetMetaData rsmd = rs.getMetaData(); while (rs.next()) { int numColumns = rsmd.getColumnCount(); JSONObject obj = new JSONObject(new LinkedHashMap()); for (int i = 1; i < numColumns + 1; i++) { String column_name = rsmd.getColumnName(i); if (rsmd.getColumnType(i) == java.sql.Types.ARRAY) { obj.put(column_name, rs.getArray(column_name)); } else if (rsmd.getColumnType(i) == java.sql.Types.BIGINT) { obj.put(column_name, rs.getInt(column_name)); } else if (rsmd.getColumnType(i) == java.sql.Types.BOOLEAN) { obj.put(column_name, rs.getBoolean(column_name)); } else if (rsmd.getColumnType(i) == java.sql.Types.BLOB) { obj.put(column_name, rs.getBlob(column_name)); } else if (rsmd.getColumnType(i) == java.sql.Types.DOUBLE) { obj.put(column_name, rs.getDouble(column_name)); } else if (rsmd.getColumnType(i) == java.sql.Types.FLOAT) { obj.put(column_name, rs.getFloat(column_name)); } else if (rsmd.getColumnType(i) == java.sql.Types.INTEGER) { obj.put(column_name, rs.getInt(column_name)); } else if (rsmd.getColumnType(i) == java.sql.Types.NVARCHAR) { obj.put(column_name, rs.getNString(column_name)); } else if (rsmd.getColumnType(i) == java.sql.Types.VARCHAR) { obj.put(column_name, rs.getString(column_name)); } else if (rsmd.getColumnType(i) == java.sql.Types.TINYINT) { obj.put(column_name, rs.getInt(column_name)); } else if (rsmd.getColumnType(i) == java.sql.Types.SMALLINT) { obj.put(column_name, rs.getInt(column_name)); } else if (rsmd.getColumnType(i) == java.sql.Types.DATE) { obj.put(column_name, rs.getDate(column_name)); } else if (rsmd.getColumnType(i) == java.sql.Types.TIMESTAMP) { obj.put(column_name, rs.getTimestamp(column_name)); } else { obj.put(column_name, rs.getObject(column_name)); } } Json_arr.add(obj); } ret = Json_arr.toString(); } catch (Exception e) { e.printStackTrace(); } return ret; } }
여기까지 간단하게 JSP에서 JAVA소스를 통해 MSSQL에 연결하여 데이터를 조회하거나
저장하는 방법을 알아보았습니다. 예제는 중요한 기초부분만 올려드리니 참고하여
사용하시면 될꺼같아요! 그럼 다음에도 더 좋은 정보로 찾아뵙겠습니다^-^)~
■ sqljdbc 라이브러리 다운로드
반응형'프로그램 소스 > JSP' 카테고리의 다른 글
[JSP] 정규식을 이용한 특수문자 제거 및 다양한 정규식 예제 (0) 2021.06.12 [JSP] 이클립스 JSON .jar파일 추가 및 라이브러리 다운로드 (0) 2020.11.24