-->

.open book.db
create table manga(name, explain);




package bean;
public class Manga implements java.io.Serializable
{
private String name;
private String explain;
public Mange(
String name,
String explain)
{
this.name = name;
this.explain = explain;
}
public String getName()
{
return name;
}
public String getExplain()
{
return explain;
}
public void setName(String id)
{
this.name = id;
}
public void setExplain(String title)
{
this.explain = title;
}
}

package dao;
import javax.servlet.ServletContext;
import java.sql.Connection;
import java.sql.DriverManager;
public class DAO
{
protected ServletContext context;
public DAO(ServletContext context)
{
this.context = context;
}
public Connection getConnection() throws Exception
{
Class.forName("org.sqlite.JDBC");
var conn = DriverManager.getConnection("jdbc:sqlite:" + context.getRealPath("book.db"));
return conn;
}
}
public DAO(ServletContext context)
{
this.context = context;
}
public Connection getConnection() throws Exception
{
Class.forName("org.sqlite.JDBC");
var conn = DriverManager.getConnection("jdbc:sqlite:" + context.getRealPath("book.db"));
return conn;
}

package dao;
import bean.Manga;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletContext;
public class MangaDAO extends DAO
{
private Connection con;
public void createConnection() throws Exception
{
if(con == null)
{
con = getConnection();
}
}
public void closeConnection() throws Exception
{
if(con != null)
{
con.close();
con = null;
}
}
public MangaDAO(ServletContext context) {
super(context);
}
public List<Manga> getAllList() throws Exception
{
PreparedStatement st;
st = con.prepareStatement
("select * from manga");
ResultSet rs = st.executeQuery();
List<Manga> list = new ArrayList<Manga>();
while(rs.next())
{
Manga a = new Manga(
rs.getString("name"),
rs.getString("explain")
);
list.add(a);
}
st.close();
return list;
}
public void add(String name, String explain) throws Exception
{
PreparedStatement st = con.prepareStatement
("insert into manga(name, explain) values(?, ?)");
st.setString(1, name);
st.setString(2, explain);
st.executeUpdate();
st.close();
}
public void delete(String name) throws Exception
{
PreparedStatement st = con.prepareStatement
("delete from manga where name = ?");
st.setString(1, name);
st.executeUpdate();
st.close();
}
}
private Connection con;
public void createConnection() throws Exception
{
if(con == null)
{
con = getConnection();
}
}
public void closeConnection() throws Exception
{
if(con != null)
{
con.close();
con = null;
}
}
public MangaDAO(ServletContext context) {
super(context);
}
public List<Manga> getAllList() throws Exception
{
PreparedStatement st;
st = con.prepareStatement
("select * from manga");
ResultSet rs = st.executeQuery();
List<Manga> list = new ArrayList<Manga>();
while(rs.next())
{
Manga a = new Manga(
rs.getString("name"),
rs.getString("explain")
);
list.add(a);
}
st.close();
return list;
}
public void add(String name, String explain) throws Exception
{
PreparedStatement st = con.prepareStatement
("insert into manga(name, explain) values(?, ?)");
st.setString(1, name);
st.setString(2, explain);
st.executeUpdate();
st.close();
}
public void delete(String name) throws Exception
{
PreparedStatement st = con.prepareStatement
("delete from manga where name = ?");
st.setString(1, name);
st.executeUpdate();
st.close();
}

package root;
import bean.Manga;
import dao.MangaDAO;
import java.io.IOException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.*;
import javax.servlet.annotation.WebServlet;
@WebServlet(urlPatterns = {"/"})
public class Root extends HttpServlet
{
private void commonRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
try {
MangaDAO dao = new MangaDAO(getServletContext());
dao.createConnection();
List<Manga> allList = dao.getAllList();
String resultHtml = "";
for (Manga manga : allList) {
resultHtml += manga.getName() + ", " + manga.getExplain();
resultHtml += "<br>";
}
request.setAttribute("allList", resultHtml);
dao.closeConnection();
request.getRequestDispatcher("/root.jsp").include(request, response);
} catch(Exception e) {
System.err.println(e.getMessage());
}
}
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
commonRequest(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
commonRequest(request, response);
}
}
package root;
import dao.MangaDAO;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.*;
import javax.servlet.annotation.WebServlet;
@WebServlet(urlPatterns = {"/add_manga"})
public class AddManga extends HttpServlet
{
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
try {
MangaDAO dao = new MangaDAO(getServletContext());
dao.createConnection();
dao.add(request.getParameter("name"), request.getParameter("explain"));
dao.closeConnection();
request.getRequestDispatcher("/").forward(request, response);
} catch(Exception e) {
System.err.println(e.getMessage());
}
}
}
package root;
import dao.MangaDAO;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.*;
import javax.servlet.annotation.WebServlet;
@WebServlet(urlPatterns = {"/delete_manga"})
public class DeleteManga extends HttpServlet
{
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
try {
MangaDAO dao = new MangaDAO(getServletContext());
dao.createConnection();
dao.delete(request.getParameter("name"));
dao.closeConnection();
request.getRequestDispatcher("/").forward(request, response);
} catch(Exception e) {
System.err.println(e.getMessage());
}
}
}
set CLASSPATH=C:\SQLite\tomcat\lib\servlet-api.jar
javac -encoding utf-8 -d ..\classes -sourcepath . bean\*.java
javac -encoding utf-8 -d ..\classes -sourcepath . dao\*.java
javac -encoding utf-8 -d ..\classes -sourcepath . root\*.java

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Test Database</title>
<style type="text/css">
body {
background-color:blanchedalmond;
}
</style>
</head>
<body>
<h2>Mangaテーブルだよ!</h2>
<h3>全レコード</h3>
${allList}
<h3>レコードの追加</h3>
<form action="add_manga" method="post">
[名前]<input type="text" name="name">
[説明]<input type="text" name="explain">
<button type="submit">レコードを追加</button>
</form>
<h3>レコードの削除</h3>
<form action="delete_manga" method="post">
[名前]<input type="text" name="name">
<button type="submit">レコードを削除</button>
</form>
</body>
</html>