jsp实现增加数据功能
1. 环境的搭建
软件
数据库 sql
myeclipse 8.0 tomcat 6.0
2. 安装完 myeclipse 配置下 部署tomcat 6.0
=1=》

=2=》 新建 jsp 工程

=3=》 新建 jsp 文件信息

启动服务并且部署



代码详情:
建立数据库
1.sql 数据库
CREATE TABLE [dbo].[test1](
[id] [int] IDENTITY(1,1) NOT NULL,
[tname] [char](10) NOT NULL,
[tband] [char](10) NOT NULL,
[tchangdi] [char](20) NOT NULL,
[tchangjia] [char](50) NOT NULL,
[beizhu] [char](50) NOT NULL
) ON [PRIMARY]
2. 用户各种字段 一般上和我们数据库字段相同
po/User.java
package po;
public class User {
//ctrl+shift+s 再按+c +o +r 自动生成
//为了防止直接使用源数据 进行的误操作
int id;
String tname;
String tband;
String tchangdi;
String tchangjia;
String beizhu;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getTname() {
return tname;
}
public void setTname(String tname) {
this.tname = tname;
}
public String getTband() {
return tband;
}
public void setTband(String tband) {
this.tband = tband;
}
public String getTchangdi() {
return tchangdi;
}
public void setTchangdi(String tchangdi) {
this.tchangdi = tchangdi;
}
public String getTchangjia() {
return tchangjia;
}
public void setTchangjia(String tchangjia) {
this.tchangjia = tchangjia;
}
public String getBeizhu() {
return beizhu;
}
public void setBeizhu(String beizhu) {
this.beizhu = beizhu;
}
public User(int id, String tname, String tband, String tchangdi,
String tchangjia, String beizhu) {
super();
this.id = id;
this.tname = tname;
this.tband = tband;
this.tchangdi = tchangdi;
this.tchangjia = tchangjia;
this.beizhu = beizhu;
}
public User() {
super();
// TODO Auto-generated constructor stub
}
}
需要字段代码
3.由于每次使用都会需要调用连接数据库代码 ,所以把抽离出来
db/DbConn.java
package db; import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement; public class DbConn { public static Connection getConn()
{
Connection con =null;
try {
// Class.forName("com.mysql.jdbc.Driver"); // 加载驱动程序
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); } catch (ClassNotFoundException e) {
System.out.println("加载驱动程序错误" + e.getMessage());
} try {
// 创建连接 testdb是数据库名称 重点在此
con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=mvce", "sa", "123456"); } catch (SQLException e) { System.out.println("数据库连接操作出错" + e.getMessage());
}
return con;
}
}
连接数据库代码
4.数据处理
package dao; import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List; import db.DbConn;
import po.User; public class UserDAO { //增加 public int add(User u)
{
int n=0;
try {
// 创建连接 testdb是数据库名称
Connection con = DbConn.getConn(); // 创建声明SQL对象
Statement stm = con.createStatement();
// 执行SQL语句,得到结果集,结果集放到ResultSet对象中
String sql="insert into test1 values('"+u.getTname()+"','"+u.getTband()+"','"+u.getTchangdi()+"','"+u.getTchangjia()+"','"+u.getBeizhu()+"');";
n=stm.executeUpdate(sql);
} catch (SQLException e) { System.out.println("数据库操作出错" + e.getMessage());
}
return n;
}
}
数据库操作(增加)
5.设计add.jsp (按照执行顺序)
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<p>商品信息添加</p>
<form name="frm1" action="servlet/AddServlet">
<p>商品编号:
<label for="textfield"></label>
<input type="text" name="id" id="textfield" />
</p>
<p>商品名字:
<input type="text" name="tname" id="textfield2" />
</p>
<p>商品品牌:
<input type="text" name="tband" id="textfield3" />
</p>
<p>商品产地:
<input type="text" name="tchangdi" id="textfield4" />
</p>
<p>生产厂家:
<input type="text" name="tchangjia" id="textfield5" />
</p>
<p>备注:
<input type="text" name="tbeizhu" id="textfield5" />
</p> <p> </p>
<input type="submit" value="确定"/>
</form>
</body>
</html>
add 首页代码
6.AddServlet.jsp 这个文件一定要新建 ,不要拽,因为web.xml文件不会自动生成(严格来说新建的好)
package servlet; import java.io.IOException;
import java.io.PrintWriter;
import java.sql.*; import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import po.User; import dao.UserDAO;
import db.DbConn; public class AddServlet extends HttpServlet { /**
* Constructor of the object.
*/
public AddServlet() {
super();
} /**
* Destruction of the servlet. <br>
*/
public void destroy() {
super.destroy(); // Just puts "destroy" string in log
// Put your code here
} /**
* The doGet method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to get.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//这样可以调用 可以和 提交方法无关 无论哪种提交都会处理一样的信息
doPost(request,response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { response.setContentType("text/html");
PrintWriter out = response.getWriter();
out
.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");
out.println(" <BODY>");
// 获取提交的信息
String id=request.getParameter("id");
String tname=request.getParameter("tname");
String tband=request.getParameter("tband");
String tchangdi=request.getParameter("tchangdi");
String tchangjia=request.getParameter("tchangjia");
String tbeizhu=request.getParameter("tbeizhu"); //把获取的放进对象里面
// user 是各种数据字段
User u=new User();
u.setTname(tname);
u.setTband(tband);
u.setTchangdi(tchangdi);
u.setTchangjia(tchangjia);
u.setBeizhu(tbeizhu);
//新建数据处理对象 是为了调用这个UserDao 里面的 add 方法使用的 或其他方法使用的(增删改查登录等) 和数据库进行交互的的
UserDAO udao=new UserDAO();
//调用方法 成功返回1 不成功返回0
int n=udao.add(u);
if(n>0) {
out.println("tian success");
}
else
{
out.println("添加失败");
}
out.println(" </BODY>");
out.println("</HTML>");
out.flush();
out.close();
}
public void init() throws ServletException {
// Put your code here
} }
AddServlet
注意:由于myeclipse 软件, 我在 执行中遇到打不来add.jsp
原因:1.重新配置需要 需要重启下tomcat
2.http:// 这个要加上 http://127.0.0.1:8080/js185567/add.jsp
jsp实现增加数据功能的更多相关文章
- 前端通信:ajax设计方案(十)--- 完善Promise A+规范,增加mock数据功能
半年不迭代,迭代搞半年,说的就是我,这里有点尴尬了,直接进入主题吧 我记得在这篇博客的时候集成了Promise的,不过那个时候就简简单单的写了一点最基础,在一些特殊的case上,还是有点问题的,所以才 ...
- (MVC)javaBaen+jsp+servlet对数据的操作
运用MVC对数据进行一些简单的处理,基本实现数据的增删改查,达到前端和后台的数据之间的交互. 1.开始界面 <%@page import="com.zdsofe.work.Studen ...
- [更新]跨平台物联网通讯框架 ServerSuperIO v1.2(SSIO),增加数据分发控制模式
1.[开源]C#跨平台物联网通讯框架ServerSuperIO(SSIO) 2.应用SuperIO(SIO)和开源跨平台物联网框架ServerSuperIO(SSIO)构建系统的整体方案 3.C#工业 ...
- 如何Windows分页控件中增加统计功能
在我的博客里面,很多Winform程序里面都用到了分页处理,这样可以不管是在直接访问数据库的场景还是使用网络方式访问WCF服务获取数据,都能获得较好的效率,因此WInform程序里面的分页控件的使用是 ...
- 为ecshop红包增加”转赠”功能
ecshop促销中使用红包激励用户购物,要想炒热活动,红包就需要有物以稀为贵的感觉.有人求有人送,这样红包之间的转赠有助于拉动第二梯队的顾客.但是如果已经把红包添加到自己的账户了怎么办?如果ecsho ...
- 给ecshop后台增加管理功能页面
给ecshop后台增加管理功能页面 比如我们增加一个统计报表叫做 物流费用统计报表 放在后台“报表统计”栏目中 具体操作步骤: 第一步,我们要添加一个菜单到后台,然后设置语言项,最后设置权限,这样,后 ...
- 学习ASP.NET Core Razor 编程系列九——增加查询功能
学习ASP.NET Core Razor 编程系列目录 学习ASP.NET Core Razor 编程系列一 学习ASP.NET Core Razor 编程系列二——添加一个实体 学习ASP.NET ...
- FPA笔记三 数据功能的识别
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://welkinhu.blog.51cto.com/447606/115477 ...
- jsp实现翻页功能
jsp实现翻页功能 要实现翻页功能,只需要设置一个pageIndex即可,然后每次加载页面时通过pageIndex去加载数据就行. 那么我们可以设置一个隐藏的input框,用于传递pageIndex给 ...
随机推荐
- nginx篇最初级用法之访问认证
1打开conf下的配置文件 在server 之下 location 之上加入 auth_basic "Input Password:"; 弹出的提示信息 auth_basic ...
- java.io.StreamCorruptedException: invalid stream header: 00000000
Caused by: java.io.StreamCorruptedException: invalid stream header: 00000000 at java.io.ObjectInputS ...
- sshd服务及基于密钥远程登陆(无需密码)
上一条博客说明了用sshd服务远程登陆另一个系统,但是需要密码,如果不用密码呢?有没有简便的方法呢?下面为大家介绍一下,也就是基于密钥的安全验证:需要在本地生成”密钥对“后将公钥传送至服务端,进行公共 ...
- docker showdoc安装
自动脚本安装 前言 自动脚本脚本利用docker来安装运行环境,适用于linux服务器.如果你的服务器没有docker服务,脚本会尝试安装之.安装docker的过程可能有些慢.如果你已经安装过dock ...
- QKD 一些术语的含义
密钥率:每个信道使用的比特数. 系统开销:不能用来提取最终密钥的信号百分比. SNU:散粒噪声单元 RNG:随机数发生器 QRNG:量子随机数发生器 TRNG:真正的随机数生成器 PRNG:伪随机数发 ...
- hdu 1263 水果 (嵌套 map)
水果Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submissio ...
- hdu 2255 奔小康赚大钱 (KM)
奔小康赚大钱Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...
- Tsx写一个通用的button组件
一年又要到年底了,vue3.0都已经出来了,我们也不能一直还停留在过去的js中,是时候学习并且在项目中使用一下Ts了. 如果说jsx是基于js的话,那么tsx就是基于typescript的 废话也不多 ...
- C语言|博客作业05
这个作业属于哪个课程 C语言程序设计II 这个作业的要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-1/homework/9825 我在这个课程的 ...
- C语言|博客作业01
2.1你对计算机科学与技术的了解是怎样? 一开始,我并不知道计科和软件的区别,甚至以为这是一种专业的两种叫法.进了大学之后,才一下子懂了,计科就是计科,它和软件虽有相同之处,但是终究是不一样的.计科涉 ...