Web jsp開發學習——連接數據庫,數據的增加和刪除


1.首先在newlist界面增加三個圖表,帶上事件

 

 

newlist.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    import="java.util.*,java.text.*,com.xx17.cys.entity.*" 
    import="java.sql.*,org.apache.commons.dbcp2.*" 
    import="javax.naming.*,javax.sql.*" pageEncoding="UTF-8"%>
<%
//List<News> newslist = new ArrayList<News>();
    List newslist = new ArrayList();
    News news;
    /*= new News(1,"今天是星期四","gfsggfsg",201,"2019-3-13",0);
    newslist.add(news);
    news = new News(2,"又可以上web課啦!","gfsggfshgffdhg",104,"2019-3-14",0);
    newslist.add(news);
    String newstitle[]={"今天是星期四!","又可以上web課啦!","下午公休,嘿嘿!","人生啊,如此艱難!","現在是上午9點20分"};
    String newsdate[]={"2019-3-13","2019-3-14","2019-3-15","2019-3-16","2019-3-17"};
    */
    /*數據庫連接池*/
    /*BasicDataSource ds = new BasicDataSource();
    String url="jdbc:mysql://localhost:3306/bookstore?user=root&password=caiyishuai";
    url += "&useUnicode=true&characterEncoding=utf8";
    ds.setDriverClassName(url);
    ds.setUsername("root");
    ds.setPassword("caiyishuai");
    ds.setMaxTotal(30);
    ds.setMinIdle(5);
    ds.setMaxWaitMillis(10000);
    ds.setRemoveAbandonedTimeout(100);
    ds.setRemoveAbandonedOnBorrow(true);
    ds.setRemoveAbandonedOnMaintenance(true);
    */
    
    /*使用靜態數據庫連接池*/
    Context initContext = new InitialContext();
    Context envContext = (Context)initContext.lookup("java:/comp/env");
    DataSource ds = (DataSource)envContext.lookup("jdbc/bookstore");
    
    //建立連接池連接
    Connection conn = ds.getConnection();

    /*Class.forName("com.mysql.jdbc.Driver");  ////驅動程序名
    String url = "jdbc:mysql://localhost:3306/bookstore"; //數據庫名
    String username = "root";  //數據庫用戶名
    String password = "caiyishuai";  //數據庫用戶密碼
    Connection conn = DriverManager.getConnection(url, username, password);  //連接狀態*/

    if(conn != null){  
        out.print("數據庫連接成功!");
        Statement stmt = conn.createStatement();
        //創建結果集合,集合與表的結構類似
        ResultSet rs = stmt.executeQuery("select * from t_news");
        //rs.last
        //out.println("記錄數:"+rs.getRow());
        while(rs.next()){
            //System.out.println("rs"+rs);
              news = new News(rs.getInt(1),rs.getString(2),rs.getString(3),rs.getInt(5),rs.getString(4),1);
              newslist.add(news);
        }
    }

    /*建立連接
    Connection conn = DriverManager.getConnection(url);
    創建語句環境
    Statement stmt = conn.createStatement();
    創建結果集合,集合與表的結構類似
    ResultSet rs = stmt.executeQuery("select * from t_news");
    rs.last
    out.println("記錄數:"+rs.getRow());
    Class.forName("com.mysql.jdbc.Driver").newInstance();
    com.mysql.jdbc.Driver d = new com.mysql.jdbc.Driver
    String url="jdbc:mysql://localhost:3306/bookstore?"
    +"user=root&password=caiyishuai&useUnicode=true&characterEncoding=utf8";
    List<News> newslist = new ArrayList<News>();
    News news;
    while(rs.next()){
        news = new News(1,rs.getString(1),rs.getString(2),rs.getInt(4),rs.getString(3),1);
        newslist.add(news);
    }*/

 

%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>新聞列表</title>
</head>
<body>
<link href="css/style.css" rel="stylesheet" type="text/css"/>
<jsp:include page="head.jsp?col=1"></jsp:include>
<div id="main" class="layout">
<%
    SimpleDateFormat formatter = new SimpleDateFormat("yyyy年MM月dd日");    
    java.util.Date today = new java.util.Date();    
    out.print(formatter.format(today));  
    //out.print(today.toLocaleString()); 
    //int id =Integer.parseInt(str);
%>
<table width="1000" border="1" cellpadding="0" cellspacing="0" style="border-collapse:collapse;">
    <tr>
        <th>序號</th>
        <th>標題</th>
        <th>日期</th>
        <th>點擊</th>
        <th></th>
    </tr>
    <% String[] color={"red","orange","yellow","green","blue","purple","pink","black","brown"};%>
    <% for(int font_size=1;font_size<7;font_size++) {%>
        <br>
        <font color="<%= color[font_size-1] %>" size="<%= font_size %>">
            智慧的帥帥,么么噠!
        </font>
    <%}
    News n;
    %>
    
    <% for(int i=0;i<newslist.size();i++){
        n=(News)newslist.get(i);%>        
        <tr>
            <td><%=i+1%></td>
            <td><a href="news.jsp?nid=<%=n.getNews_id()%>">
            <%=n.getNews_title()%></a></td>
            <td><%=n.getNews_date()%></td>
            <td><%=n.getNews_read()%></td>
            <td>
                <a href="addnews.do?action=mod&nid=<%=n.getNews_id()%>">
                    <img src="images/mod.png" width=40 >
                </a>
                <a href="addnews.do?action=del&nid=<%=n.getNews_id()%>">
                    <img src="images/del.png" width=40>
                </a>
            </td>
        </tr>    
    <%}    %>        
</table>
    <a href="addnews.do?action=add"><img src="images/new.png" width=40 ></a>
</div>
<%@ include file="foot.jsp" %>
</body>
</html>

 

2.在NewsServlet,java里寫判斷條件等等

package com.xx17.cys.servlet;

import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.xx17.cys.entity.News;
import com.xx17.cys.javabean.NewsBean;

/**
 * Servlet implementation class NewsServlet
 */
@WebServlet("/addnews.do")
public class NewsServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public NewsServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

    protected void addNews(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        
        RequestDispatcher rd;
        rd = request.getRequestDispatcher("addNews.jsp");
        rd.forward(request, response);
    
    }
    
    protected void modNews(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        
        String nid = request.getParameter("nid");
        NewsBean nb = new NewsBean();
        News news = nb.getNewsById(nid);
        
        request.setAttribute("news", news);
        RequestDispatcher rd;
        rd = request.getRequestDispatcher("modnews.jsp");
        rd.forward(request, response);
    }
    
    protected void delNews(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        
        String nid = request.getParameter("nid");
        NewsBean nb = new NewsBean();
        nb.del(nid);
        
        RequestDispatcher rd;
        rd = request.getRequestDispatcher("newslist.jsp");
        rd.forward(request, response);
    }
    
    protected void getNews(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        
        
    }
    
    protected void insNews(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String nt = request.getParameter("ntitle");
        String nc = request.getParameter("ncontent");
        String ntop = request.getParameter("ntop");
        Date now = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String nd = sdf.format(now);
        int nr = 100;
        NewsBean nb = new NewsBean();
        nb.add(nt,nc,nd,nr,ntop);
        
        response.sendRedirect("newslist.jsp");
        /*RequestDispatcher rd;
        rd = request.getRequestDispatcher("newslist.jsp");
        rd.forward(request, response);*/
        
    }
    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        String act = request.getParameter("action");
        if(act.equals("add")) {
            addNews(request, response);
        }else if(act.equals("mod")) {
            modNews(request, response);
        }else if(act.equals("del")) {
            delNews(request, response);
        }else if(act.equals("show")) {
            getNews(request, response);
        }else if(act.equals("save")) {
            insNews(request, response);
        }
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        doGet(request, response);
    }

}

 

3.增加新聞,點擊后跳轉到addNews.jsp界面 

 

 

addNews.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>
<link href="css/style.css" rel="stylesheet" type="text/css"/>
<jsp:include page="head.jsp?col=1"></jsp:include>
<div style="width:1000px; margin:auto; heigth:500px;">
<form action="addnews.do?action=save" method="post">
<table width="1000" border="1" cellpadding="5">
    <tr>
        <td width="200">標題:</td>
        <td width="800"><input name="ntitle" size="80"></td>
    </tr>
    <tr>
        <td>內容:</td>
        <td><textarea name="ncontent" cols="80" rows="10"></textarea></td>
    </tr>
    <tr>
        <td></td>
        <td><input type="checkbox" name="ntop" value="1">置頂</td>
    </tr>
    <tr>
        <td align="center" colspan="2">
        <input type="submit" value="保存">
        <input type="button" value="返回" onclick="location.href='newslist.jsp'">
        </td>
    </tr>
</table>
</form>
</div>
</body>
<%@ include file="foot.jsp" %>
</html>

NewsBean.java

 

package com.xx17.cys.javabean;

import java.sql.ResultSet;

import com.xx17.cys.entity.News;

public class NewsBean {
    
    public void add(String nt, String nc, String nd, int nr, String ntop) {
        String sql = "insert into t_news(ntitle,ncontent,ndate,";
        sql += "nread,ntop) values('"+nt+"','"+nc+"','"+nd;
        sql += "',"+nr+","+ntop+")";
        System.out.println("here: "+sql);
        
        DBBean db = new DBBean();    
        db.getConnection();
        db.executeUpdata(sql);        
    }
    
    public News getNewsById(String nid) {
        News n = new News();
        String sql = "select * from t_news where nid="+nid;
        DBBean db = new DBBean();
        db.getConnection();
        
        ResultSet rs = db.executeQuery(sql);
        try {
            if(rs.next()) {
                n.setNews_id(rs.getInt(1));
                n.setNews_title(rs.getString(2));
                n.setNews_content(rs.getString(3));
                n.setNews_top(rs.getInt(6));
            }
        }catch(Exception e) {
            e.printStackTrace();
        }
        
        return n;
    }
    
    public void del(String nid) {
        String sql = "delete from t_news where nid="+nid;
        System.out.println("here: "+sql);
        
        DBBean db = new DBBean();    
        db.getConnection();
        db.executeUpdata(sql);        
    }


}

 

DBBean.java

 

package com.xx17.cys.javabean;

import java.sql.*;
import javax.naming.*;
import javax.sql.*;

public final class DBBean {

    private Connection conn;
    private Statement stmt;
    private ResultSet rs;
    
    public DBBean() {
        
    }
    
    //建立數據庫連接
    public Connection getConnection() {
        
        try {    
            /*使用靜態數據庫連接池*/
            Context initContext = new InitialContext();
            Context envContext = (Context)initContext.lookup("java:/comp/env");
            DataSource ds = (DataSource)envContext.lookup("jdbc/bookstore");
            //建立連接池連接
            conn = ds.getConnection();
        }catch(Exception e) {
            e.printStackTrace();
        }
        
        return conn;
    }
    
    // 提取SQL生成記錄集
    public ResultSet executeQuery(String sql) {
        try {
            stmt = conn.createStatement();
            rs = stmt.executeQuery(sql);
            System.out.println("返回結果集");
        }catch(Exception e) {
            e.printStackTrace();
        }
        
        return rs;
    }
    
    // 提取SQL添加記錄
    public int executeUpdata(String sql){
        int result = 0;
        
        try{
            stmt = conn.createStatement();
            System.out.println(sql);
            result = stmt.executeUpdate(sql);
        }catch(Exception e){
            e.printStackTrace();
        }
        
        return result;
        
    }
}

 

3.刪除數據

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM