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="data:images/mod.png" width=40 >
</a>
<a href="addnews.do?action=del&nid=<%=n.getNews_id()%>">
<img src="data:images/del.png" width=40>
</a>
</td>
</tr>
<%} %>
</table>
<a href="addnews.do?action=add"><img src="data: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.删除数据
Web jsp开发学习——连接数据库,数据的增加和删除的更多相关文章
- Web jsp开发学习——网上直播聊天室的简单开发
整个界面为chat.jsp: 如果用户没有登录,就不能进行聊天. 为将发言的句子传到页面上,要设置一个<iframe></iframe>虚拟框架,将allmessage.jsp ...
- Web jsp开发学习——Servlet提交表单时用法
实现提交表单以后判断输入的信息是否符合条件 若符合条件 先新建servlet Sevlet的两种声明方式,二选一即可 再到web.xml里注册 register.jsp就是表单的界 ...
- Web jsp开发学习——数据库的另一种连接方式(配置静态数据库连接池)
1.导包 2.找到sever里的sever.xml,配置静态数据库连接池 <Context docBase="bookstore" path="/booksto ...
- Web jsp开发学习——终极解决jsp中request和response中文乱码的问题(加个过滤器)
中文乱码真的很烦人的.而且每次都要写,可麻烦了,而且有时候写了还不一定管用,所以我们可以试试过滤器 1.每个jsp头上当然要写上utf8啦 <%@ page language="jav ...
- Web jsp开发学习——前端后台传参方法
一.前端传后台: 1.1表单数据的传递 前端的表单里定义名字name 后台通过名字获取输入的值 1.2页面点击了哪个按钮传递 登录注销的另一种方式 点击登录的地方设置参数 ...
- Web jsp开发学习——实现页面跳转和传参
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletExcepti ...
- Web jsp开发学习——点击菜单页面切换
两个网页使用同一个head,在点击“首页”后,head的“首页”变成绿色,点击“新闻”后,head的“新闻”变成绿色,head的“首页”恢复原来的颜色 head.jsp <%@ page ...
- Web jsp开发学习——新建一个项目
然后 index.jsp编辑 新建一个servlet 准备发布 发布
- Web jsp开发学习——dbcp jsp连接MySQL出现中文乱码解决
开发过程中,通过dbcp.properties连接MySQL数据库,向数据库中插入中文字符时,出现乱码情况. 通过查阅资料,发现出现乱码的原因:MySQL数据库使用的是UTF-8编码,而dbcp.pr ...
随机推荐
- Cobbler自动化装机脚本
#!/bin/bash ens33_ip=192.168.1.3 ens33_gateway=192.168.1.1 ens37_ip=192.168.207.2 dhcp_wd=192.168.20 ...
- QTP(4)
一.常见回放错误 1.The "XXX" XXX object was not found in the Object Repository.(在对象库中未找到对象) ...... ...
- 牛客小白月赛12 C 华华给月月出题 (积性函数,线性筛)
链接:https://ac.nowcoder.com/acm/contest/392/C 来源:牛客网 华华给月月出题 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 131072K, ...
- prompt不生效之解决
配置文件路径: /data/mysql/mysql3306/my.cnf [client]port = 3306 [mysql]auto-rehashprompt="\\u@\\h:\\p ...
- 下载Mybatis源码
百度搜索关键字:Mybatis 点击第二个选项,为啥不是第一个?因为卡. 打开之后,长这个样子: 点击画红圈的位置,进入github源码库: 发现,进入的太深了.点击mybatis-3,进到外层目录, ...
- linux LVM逻辑卷管理
什么是LVM LVM是逻辑卷管理(Logical Volume Manager)的简称,它是建立在物理存储设备之上的一个抽象层,允许你生成逻辑存储卷,与直接使用物理存储在管理上相比,提供了更好灵活性. ...
- k8sSecret资源
Secret资源的功能类似于ConfigMap,但它专用于存放敏感数据,如密码.数字证书.私钥.令牌和ssh key等. 一.概述 Secret对象存储数据以键值方式存储数据,再pod资源中通过环境变 ...
- C# 数据类型转化为byte数组
short数据与byte数组互转 public byte[] ShortToByte(short value) { return BitConverter.GetBytes(value); } pub ...
- idea设置数据库连接所有项目都能看到
首先打来配置好数据库的项目,打开database视图,点击配置. 点击 Project Data Soures 下配置好的数据库,然后点击 Make Global ,然后就可以在其他项目看到该数据库连 ...
- 万能正则解析 json 数据 解析成键值对
string txt = "{\"ip\": \"127.0.0.1\", \"port\": 80, \"status ...