JDBC
16394 ワード
JDBC(Javaデータベース接続)とは?
Javaからデータベースに接続できるJava API.JDBCは、データベースからデータを問合せまたは更新する方法を提供します.
上の図では、MysqlやOracleなどの複数のデータベースと互換性があり、各データベースにJDBCドライバがあります.
JDBCによるデータ管理
PreParedStatement
画像ではわかりにくいので、コードを見て理解しましょう.
STUDENTSというデータベースにWebページで値を追加するWebアプリケーションを作成します.
データベースの作成(Oracle-sqldeveloperを使用)
newStudent.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action = "ns" method = "post">
이름를 입력하세요 : <input type = "text" name = "s_name">
이메일를 입력하세요 : <input type = "text" name = "s_email">
<input type = "submit" value = "press">
</form>
</body>
</html>
NewStudent.javapackage com.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/ns")
public class NewStudent extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html; charset=UTF-8");
PrintWriter out = response.getWriter();
String s_name = request.getParameter("s_name");
String s_email = request.getParameter("s_email");
String driver = "oracle.jdbc.driver.OracleDriver";
String url = "jdbc:oracle:thin:@localhost:1521:turtle601";
String id = "system";
String pw = "1234";
try {
// 1.드라이버 로딩
Class.forName(driver);
// 2. DB - Servlet 서로 연결
Connection con = DriverManager.getConnection(url,id,pw);
// 3. query 작성
String sql = "INSERT INTO students (name, email) VALUES (?, ?)";
// PreparedStatement객체를 통해 DB의 데이터를 읽거나 쓰기 가능
PreparedStatement statement = con.prepareStatement(sql);
// 첫번째 물음 표의 값 DB에 삽입
statement.setString(1, s_name);
// 두번째 물음 표의 값 DB에 삽입
statement.setString(2, s_email);
int rows = statement.executeUpdate();
if (rows > 0) {
System.out.println("A row has been insert");
}
con.close();
} catch(SQLException e) {
System.out.println("OOps,error:");
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
その他の内容:簡単なJDBCについて
Reference
この問題について(JDBC), 我々は、より多くの情報をここで見つけました https://velog.io/@turtle601/JDBCテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol