DAO及servlet控制页面跳转
1.建立数据库及表(使用mysql数据库)
create database bookdb;
create table `bookdb`.`book`(
bookId int,
bookName varchar(40),
bookWriter varchar(40)
);
2.建立BOOK对象
建立新的web project BookStore
建立新的com.mike.vo包,在此包下建立值对象。
package com.mike.vo;
public class Book {
private Integer bookID;
private String bookName;
private String bookWriter;
}
3数据库连接工具类
建立新的com.mike.util包,在此包下建立连接工具。
package com.mike.util;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;
public class ConnectionUtil {
public Connection getConnection() throws ClassNotFoundException, Exception
{
String username="root";
String password="";
String url="jdbc:mysql://localhost:3306/bookdb";
String driver="com.mysql.jdbc.Driver";
try {
Class.forName(driver);
return DriverManager.getConnection(url,username,password);
} catch (SQLException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
}
4.DAO访问接口
建立com.mike.dao,在这个包下建立DAO接口
package com.mike.dao;
import java.util.List;
import com.mike.vo.Book;
public interface BookDAO {
public List listBook();
public void save(Book book);
}
5实现DAO
建立com.mike.daoImpl包,实现BookDao
package com.mike.daoImpl;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import com.mike.dao.BookDAO;
import com.mike.util.ConnectionUtil;
import com.mike.vo.Book;
public class BookDaoImpl implements BookDAO {
public List listBook() {
// TODO Auto-generated method stub
ConnectionUtil conU = new ConnectionUtil();
Connection con = null;
List list = new ArrayList();
try {
con = conU.getConnection();
String QuerySQL = "select * from book";
PreparedStatement ps = con.prepareStatement(QuerySQL);
ResultSet rs = ps.executeQuery();
while (rs.next()) {
Book book = new Book();
book.setBookID(rs.getInt(1));
book.setBookName(rs.getString(2));
book.setBookWriter(rs.getString(3));
list.add(book);
}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
con.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return list;
}
public Boolean save(Book book) {
// TODO Auto-generated method stub
ConnectionUtil conU = new ConnectionUtil();
Connection con = null;
Boolean flag = false;
try {
con = conU.getConnection();
String InsertSQL = "insert book values(" + book.getBookID() + ",'"
+ book.getBookName() + "','" + book.getBookWriter() + "')";
PreparedStatement ps = con.prepareStatement(InsertSQL);
flag = ps.execute();
return flag;
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
return flag;
}
}
6servlet控制层 获得用户请求,将表保存在数据库中,实现页面跳转;
package com.mike.controlServlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.mike.daoImpl.BookDaoImpl;
import com.mike.vo.Book;
public class BookServlet extends HttpServlet {
public BookServlet() {
super();
}
public void destroy() {
super.destroy();
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String bookName = request.getParameter("bookName");
String bookWriter = request.getParameter("bookWriter");
BookDaoImpl bookDao = new BookDaoImpl();
Book book = new Book();
Integer bookID = 13574;// only for easy
book.setBookID(bookID);
book.setBookName(bookName);
book.setBookWriter(bookWriter);
bookDao.save(book);
request.getRequestDispatcher("/Book.jsp").forward(request, response);
}
}
7用户输入数据页面,这里是Book.jsp,为将代码全部写出,只有form表单。
BookName: | |
BookWriter: | |