[데이터베이스] 마리아DB(MariaDB) - JSP,Servlet - ajax 연동 예제
[데이터베이스] 마리아DB(MariaDB) - 이클립스 연동 보러가기
[데이터베이스] 마리아DB(MariaDB) - 이클립스 연동 다음편으로 이번에는
마리아DB(MariaDB) - JSP - ajax 연동 예제를 다뤄 보겠습니다.
사용할 sql 구문은 show databases; 입니다.
JSP 화면
JSP에서는 버튼 클릭 할때, jsonSend 함수가 실행됩니다
jsonSend함수에서는 Objet data = {sql : 'show databases'} 구문을 넘겨줍니다.
show databases의 결과 값을 object 값을 받아서
alert로 띄어줍니다.
<body>
<p>테스트</p>
<button id="jsonSend" type="button"> show databases; 구문 실행</button>
<script>
$('#jsonSend').click(function () {
jsonSend();
});
function jsonSend() {
$.ajax({
type: "POST",
url: "/TistoryExample/MariaDB_test1",
data: {sql : 'show databases;'}, //json을 보내는 방법
success: function (data) { //서블렛을 통한 결과 값을 받을 수 있습니다.
alert(data);
},
error: function (e) {
console.log(e);
alert('저장에 실패했습니다.');
}
});
}
</script>
</body>
java servlet 페이지
sql를 사용하기 위해서는 sql에 필요한 import를 해줍니다.
또한, 예제에서는 json array 방식으로 돌려주기위해서
json-simple-1.1.jar를 파일이 필요합니다.
추가적으로 json import도 해줍니다.
jsp 페이지에 보내준 sql 구문의 값을 통해서
jsp 페이지에 결과 값을 보내줍니다.
//추가 import
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
//doGet(request, response);
System.out.println("MariaDB_test1 doPost 메소드가 실행되었습니다.");
request.setCharacterEncoding("UTF-8");
//response.setContentType("text/html;charset=utf-8");//string으로 반환
response.setContentType("application/json"); //json으로 방식으로 반환하기 위해서
String sql = (String)request.getParameter("sql");
//show databases; sql 구문이 옵니다.
Connection conn = null; //mariadb와 연결르 위한 conn
Statement stmt = null; //
ResultSet resultset = null; //query의 테이블 결과를 받기 위해서
JSONArray r_arr = new JSONArray(); /// 결과를 보내줄 Array
PrintWriter out = response.getWriter(); //Array 값을 보내주기 위해서
String db_id = "root";
String db_pass = "";
String db_server = "jdbc:mysql://localhost:3306/test";
try {
Class.forName("org.mariadb.jdbc.Driver"); //mariadb jar를 통한 연결
conn = DriverManager.getConnection(db_server, db_id, db_pass);
try {
stmt = conn.createStatement(); //데이터베이스 sql문을 보내기 위한 개
if (stmt.execute(sql)) { // 실행이 성공한 경우
resultset = stmt.getResultSet();
}else{ // 실패한 경우
resultset = null;
}
while (resultset.next()) { // 커서의 위치를 false나올때까지 돕니다
System.out.println(resultset.getString("Database"));
// 칼럼의 헤더 Database의 값을 가져옴
r_arr.add(resultset.getString("Database"));
}
}
catch (SQLException ex){
ex.printStackTrace();
}
finally {
// 사용한 자원 해제 resultset , stmt , conn 순으로 해제해주세요!
if (resultset != null) {
try {
resultset.close();
} catch (SQLException sqlEx) { }
resultset = null;
}
if (stmt != null) {
try {
stmt.close();
} catch (SQLException sqlEx) { }
stmt = null;
}
if (conn != null) {
try {
conn.close();
} catch (SQLException sqlEx) { }
conn = null;
}
}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
out.print(r_arr); //찾은 arr 값을 반환
}
결과화면 - jsp 페이지
결과화면 - 이클립스
도움이 되셨다면, 구독과 좋아요.... 아니아니 ...
공감 버튼 꾸욱 눌러주세요 ~~
'[데이터베이스]' 카테고리의 다른 글
[데이터베이스] 몽고DB(MongDB) - JSP,Servlet - ajax 연동 예제 (0) | 2018.05.03 |
---|---|
[데이터베이스] 몽고DB(MongDB) 이클립스 jar 추가하기 (0) | 2018.05.03 |
[데이터베이스] 몽고DB(MongoDB) 무료 mlab 사용기 (0) | 2018.05.03 |
[데이터베이스] 마리아DB(MariaDB) - 이클립스 연동 (0) | 2018.05.03 |
[데이터베이스] MariaDB 설치하기 (0) | 2018.05.03 |