MENU

【Java】データベースにデータを保存する

f:id:kiserukun:20210611090227p:plain MySQLにデータを保存する方法を勉強したのでアウトプットします。
 
DataSourceでデーターベースに接続し、INSERT文で入力した値をデータベースに保存していきます。  

◆ファイル一覧◆
・input.jsp
・UserServlet.java
・UserDAO.java

データベースにデータを保存する(サンプル)

input.jsp

登録画面です。

<%@ page language="java" contentType="text/html; charset=SJIS"
    pageEncoding="SJIS"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="SJIS">
<title>登録</title>
</head>
<body>
<p>登録画面</p> 
<form action="/User/UserServlet" method="post">
<p>名前<input type="text" name="name" size="10"></p>
<p>年齢<input type="number" name="age" size="10">
<p>性別<input type="text" name="gender" size="10">
<p>住所<input type="text" name="address" size="10">
<p><input type="submit" value ="送信"></p>
</form>
</body>
</html>

UserServlet.java

サーブレットクラスです。

package model;

import java.io.IOException;
import java.sql.SQLException;
import javax.naming.NamingException;
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("/UserServlet")
public class UserManageServlet extends HttpServlet {
 private static final long serialVersionUID = 1L;

 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  exec(request, response);
 }

 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  exec(request, response);
 }
  
 public void exec(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  request.setCharacterEncoding("SJIS");
  String name = request.getParameter("name");
  String age = request.getParameter("age");
  String gender = request.getParameter("gender");
  String address = request.getParameter("address");

  UserDAO userDao = new UserDAO();
  userDao.regist(name, age, gender, address);
 }
}

 

UserDAO.java

DAOクラスです。

package model;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;

public class UserDAO {
 
 public void regist(String name, String age, String gender,String  address) throws SQLException, NamingException {
  InitialContext context = new InitialContext();
  DataSource datasource = (DataSource) context.lookup("java:comp/env/jdbc/mydb");
  Connection connection = datasource.getConnection();
     
  String sql = "INSERT INTO userdbtb(NAME, AGE, GENDER, ADDRESS)" + "VALUES (?, ?, ?, ?)";
  PreparedStatement prepared = connection.prepareStatement(sql);
  prepared.setInt(1, name);
  prepared.setString(2, age);
  prepared.setString(3, gender);
  prepared.setString(4, address);
  prepared.executeUpdate();
  
  connection.close();
 }
}

実行結果

f:id:kiserukun:20210807092534j:plain

データを保存することができました!

 
↓オススメの書籍↓