简单页面+java后台+数据库,实现从页面对数据库的增删改查

简单页面+java后台+数据库,实现从页面对数据库的增删改查在实现简单网页上对数据内容进行增删改查,需要用到三个部分,分别是jsp网页部分+java后台部分+数据库表我用一个新闻的例子来实现,首先编写java后台程序java后台程序:我们用三层的模式进行设计:分别是servlet,service,dao层,并且建立个实体包用来打包数据库和后台要用到的属性截个图首先是写功能写的顺序分别是从servlet,service,dao层…

大家好,又见面了,我是你们的朋友全栈君。

在实现简单网页上对数据内容进行增删改查,需要用到三个部分,分别是jsp网页部分+java后台部分+数据库表

我用一个新闻的例子来实现,首先编写java后台程序

java后台程序:

我们用三层的模式进行设计:分别是servlet,service,dao层,并且建立个实体包用来打包数据库和后台要用到的属

性截个图

简单页面+java后台+数据库,实现从页面对数据库的增删改查

首先是写功能写的顺序分别是从servlet,service,dao层:

servlet层代码如下:

public class TypeServlet {

	TypeService ts=new TypeServiceImp();//调用service层
	/*******添加************************************************************************************/
	public int addtype(String name){
		int a=0;
		a=ts.addtype(name);
		return a;
	}
	/*******查看************************************************************************************/
	public List<types> selets(){
		List<types> list=new ArrayList<types>();
		list=ts.selets(null);
		return list;	
	}
	/*******删除************************************************************************************/
	public int delete(int id){
		int a=0;
		types t=new types();
		t.setId(id);
		a=ts.delete(t);
		return a;
	}
	/*******修改************************************************************************************/
	public int update(types t){
		int a=0;
		a=ts.update(t);
		return a;
	}
	/*******查找一个************************************************************************************/
	public types selectone(int id){
		types t=new types();
		t.setId(id);
		types nt=ts.selectone(t);
		return  nt;
	}
}

Service层分为两层分别为接口层和实现层

简单页面+java后台+数据库,实现从页面对数据库的增删改查

接口程序如下:

public interface TypeService {

	public int addtype(String name);
	
	public List<types> selets(types t);
	
	public int delete(types t);
	
	public int update(types t);
	
	public types selectone(types t);
	
}

接口实现程序:

public class TypeServiceImp implements TypeService{

	TypeDao td= new TypeDaoImp();
	
	public int addtype(String name) {    //注意返回数据不要忘记修改
		int a=0;
		a=td.addtype(name);
		return a;
	}

	public List<types> selets(types t) {
		List<types> list=new ArrayList<types>();
		list=td.selets(t);
		return list;
	}
	/*******删除************************************************************************************/
	public int delete(types t) {
		int a=0;
		a=td.delete(t);
		return a;
	}
	/*******修改************************************************************************************/
	public int update(types t) {
		int a=0;
		a=td.update(t);
		return a;
	}

	/*******查找单个************************************************************************************/
	public types selectone(types t){
		types tp=new types();
		tp=td.selectone(t);
		return tp;
		
	}
}

Dao层程序同样分为接口层和实现层

接口层程序:

public interface TypeDao {

	public int addtype(String name);
	
	public List<types> selets(types t);
	
	public int delete(types t);
	
	public int update(types t);
	
	public types selectone(types t);
	
}

实现类程序:

public class TypeDaoImp implements TypeDao{
	Connection con=null;
	PreparedStatement ps=null;
	ResultSet rs=null;
	
	public int addtype(String name){
		int a=0;
		try {
			//连接数据库
			con=Shujuku.conn();
			String sql="insert into typesname values(?)";   //设置id自增
			ps=con.prepareStatement(sql);
			ps.setString(1, name);
			a=ps.executeUpdate();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return a;
	}

	public List<types> selets(types t) {
		List<types> list=new ArrayList<types>();
		try {
			//连接数据库
			con=Shujuku.conn();
			String sql="select*from typesname";  
			ps=con.prepareStatement(sql);
			rs=ps.executeQuery();
			while(rs.next()){
				types ty=new types();
				ty.setId(rs.getInt("id"));
				ty.setTypename(rs.getString("typename"));
				list.add(ty);
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return list;
	}
	/*******删除************************************************************************************/
	public int delete(types t) {
		int a=0;		
		try {
			con=Shujuku.conn();
			String sql="delete from typesname where id="+t.getId();
			ps=con.prepareStatement(sql);
			a=ps.executeUpdate();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return a;
	}
	/*******修改************************************************************************************/
	public int update(types t) {
		int a=0;
		try {
			con=Shujuku.conn();
			String sql="update typesname set typename=? where id=?";
			ps=con.prepareStatement(sql);
			ps.setString(1, t.getTypename());
			ps.setInt(2, t.getId());
			a=ps.executeUpdate();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return a;
	}
	/*******查找一个************************************************************************************/
	public types selectone(types t) {
		types tp=new  types();
		try {
			con=Shujuku.conn();
			String sql="select * from typesname where id=?";
			ps=con.prepareStatement(sql);
			ps.setInt(1, t.getId());
			rs=ps.executeQuery();
			if(rs.next()){
				tp.setId(rs.getInt("id"));
				tp.setTypename(rs.getString("typename"));
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}	
		return tp;
	}
}

最后就是数据库包,为了方便使用,将数据库的驱动连接信息建立一个包存放:

代码如下:

public class Shujuku {

	public static Connection conn(){
		//定义地址
		String url="jdbc:sqlserver://localhost:1433;DatabaseName=test;";
	    //定义连接初始值
		Connection connection=null;	
		try {
			//加载驱动
			Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
			//建立连接
		     connection=DriverManager.getConnection(url, "sa", "DCX5201314");
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}	
		return connection;	
	}
}

属性包,代码如下:

public class types {
	private int id;
	private String typename;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getTypename() {
		return typename;
	}
	public void setTypename(String typename) {
		this.typename = typename;
	}
}

java后台程序就这么多;

接下来是数据库部分:

数据库部分主要就是建立一张表,笔者使用的是SQL Server 2008,首先建个数据库test,建立个表typesname,设置两列分别为id typename,id设为主键,int 型,自增为1;typename设置类型为varchar型,不能为空。

简单页面+java后台+数据库,实现从页面对数据库的增删改查

好了,数据库和java后台都搭建好了,现在来到前端网页部分,

网页部分

在myeclipse中新建7个jsp文件

简单页面+java后台+数据库,实现从页面对数据库的增删改查

index.jsp是一个总的网页

设置代码如下:

</head>
	<frameset rows="20%,80%">
		<frame src="head.jsp">
		<frameset cols="20%,80%">
			<frame src="left.jsp">
			<frame src="right.jsp" name="rights">
		</frameset>
	</frameset>
	<body>
	</body>

head.jsp

<body>  
<h1>这是头部</h1>
</body>

left.jsp

<body>
    <h1>这是左边</h1>
    <ul>
       <li><a href="addtype.jsp" target="rights">添加新闻类型</a></li>
       <li><a href="showtype.jsp" target="rights">查看新闻类型</a></li>
    </ul>
  </body>

right.jsp

<body>
    <h1>这是右边</h1>
 </body>

addtype.jsp

</head>
  <%
    request.setCharacterEncoding("UTF-8");
    String name= request.getParameter("typename");
    if(name!=null){
    	TypeServlet tp=new TypeServlet();
    	int a=tp.addtype(name);
    	if(a>0){
    		RequestDispatcher rd = request
			.getRequestDispatcher("showtype.jsp");
    		rd.forward(request, response);
    	}else{
    		RequestDispatcher rd = request
			.getRequestDispatcher("addtype.jsp");
    		rd.forward(request, response);
    	}
    }
  %>
  <body>
    <h1>添加新闻类型</h1><hr/>
    <form action="addtype.jsp" method="post">
    新闻类型:<input type="text" name="typename"></br>
        <input type="submit" value="提交">
    </form>
  </body>

showtype.jsp

<script type="text/javascript">
function deletes_(id){
	 
   var f=confirm("是否确定删除?");
   if(f){
   location.href="showtype.jsp?ids="+id;
   }else{
   alert("您取消删除");
   }
}

function update(id){
	location.href="updatetype.jsp?ids="+id;
}
</script>
  </head>
  <%
  request.setCharacterEncoding("UTF-8");
  String id=request.getParameter("ids");
  String type=request.getParameter("type");
  if(id!=null){	
	      TypeServlet ts=new TypeServlet();
		  int a = ts.delete(Integer.parseInt(id));
		  response.sendRedirect("showtype.jsp"); 
	      
  }
   %>
  <body>
    <h1> 展示类型</h1>
    <table border="1">
    <tr><td>编号</td><td>类型名称</td><td>操作</td></tr>
    <%
    //直接调用后台数据
     TypeServlet ts=new TypeServlet();
     List<types> list=ts.selets();
     for(int i=0;i<list.size();i++){
     types n=list.get(i);
     %>
     <tr>
  <td><%=n.getId() %></td>
  <td><%=n.getTypename() %></td>
  <td><input type="button" onclick="update(<%=n.getId() %>)" value="修改"/>
    
     <input type="button" onclick="deletes_(<%=n.getId() %>)" value="删除"/></td>
  </tr>
    <%
     }
     %>
  </body>

updatetype.jsp

<body>
    <% 
    request.setCharacterEncoding("UTF-8");
     String id=request.getParameter("ids");
    TypeServlet tsl=new TypeServlet();
    types ts=new types();
    String type= request.getParameter("type");
    if(type!=null){
    	String typename=request.getParameter("newtype");//从下面的输入取值
    	String id1=request.getParameter("id");
    	ts.setId(Integer.parseInt(id1));//强转
    	ts.setTypename(typename);
    	int a=tsl.update(ts);
    	response.sendRedirect("showtype.jsp");
    }else{
    	  if(id!=null){
    		     ts=tsl.selectone(Integer.parseInt(id));
    		  }
    		  }
    %>
    
    <h1>修改新闻类型界面</h1>
    <hr/>
    <form action="updatetype.jsp" method="post">
    <input type="hidden" name="type" value="3">
    <input type="hidden" name="id" value="<%=ts.getId() %>">
      新闻类型:<input type="text" value="<%=ts.getTypename() %>" name="newtype"><br/>
      <input type="submit" value="提交">
    </form>
  </body>

最终项目在tomcat上发布。

下面的地址积分系统调的太高了,我重新上传了一份内容是一样的地址在这:new_system重新命名_html获取数据库数据-Java文档类资源-CSDN下载

高积分下载打包文件在这:news_system,实现简单网页+java后台+数据库对标题和内容进行增删改查_网页实现数据库查询-SQLServer文档类资源-CSDN下载

也可以参考在这篇基础上的两个表关联操作:简单界面+JAVA后台+数据库实现页面对数据库的两张关联表操作_静风落叶的博客-CSDN博客_java关联表

有问题也希望各位提出,一起进步,

没积分的留言。留下邮箱,我看到会给你发的,但是太多的,可能会漏发,见谅!!!

也欢迎转载!!!也欢迎转载!!!也欢迎转载!!!

需要代码的人多,直接上传百度云了,大家自己下载,喜欢的话给我点个赞 链接: https://pan.baidu.com/s/1BdYakt5_d0-SlOSaLxVFPA 提取码: 82bd

复制这段内容后打开百度网盘手机App,操作更方便哦

点个赞点个赞点个赞点个赞点个赞

简单页面+java后台+数据库,实现从页面对数据库的增删改查

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/142885.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python ip池(python 连接池)

    ,都说标题是文章的灵魂,想了半天没想到什么比较有创意的标题,只好拿一个去年的爆款标题套一下。啊哈哈哈哈哈哈,朕真是太机智了这是一篇介绍如何使用python搭建IP池的文章,如果爱卿对此不感兴趣,那很抱歉,标题耽误了你宝贵的时间。事情的起因是这样,前段时间我写了一篇介绍如何爬取小说的blog【python那些事.No2】,在爬取的过程中,发现同一个IP连续只能获取前几页小说内容,原本是想搭建…

    2022年4月11日
    40
  • 从高考落榜生到网络专家

    从高考落榜生到网络专家成功的背后,有着许多不为人知的故事,而正是这些夹杂着泪水和汗水的过去,才成就了一个个走 向成功的普通人——凌晨两点半,早已习惯了一个人坐在电脑前的我,望着屏幕,任思绪在暗夜的包容 下静静流淌,时光仿佛又定格在三年多前的那一刻:“283分”。那是被中国万千学子称为“黑色七 月”中的一天,下班回家的母亲从家门打开后说出的一个数字,虽然早知道自己不会考上大学,但如此 的成绩也多少出乎自己

    2025年8月22日
    3
  • MES项目导入-SMT行业解决方案知识

    SMT行业解决方案 随着电子技术的快速发展和电子产品生命周期的不断变短,给PCB板组装制造商提出了越来越高的要求,同时,全球化的市场竞争使企业面临的国际压力越来越大。现代PCB板组装制造企业要想在瞬息万变的市场竞争中站稳脚跟,得以生存发展,必须采用先进的生产模式,快速响应客户订单需求,并提供优质低价的产品。系统集成和信息集成(CIMS)是当前提高企业管理效率的重要技术。

    2022年4月7日
    39
  • 微信授权网页扫码登录php,PHP实现微信开放平台扫码登录源码

    微信授权网页扫码登录php,PHP实现微信开放平台扫码登录源码1、首先到微信开放平台申请https://open.weixin.qq.com/获取到appid和APPSECRET,前台显示页面如下html>varobj=newWxLogin({id:”login_container”,appid:”wxed782be999f86e0e”,scope:”snsapi_login”,redirect_uri:encodeURICompon…

    2022年6月3日
    34
  • Unity2019(或2020)个人版如何激活使用(不是激活成功教程,正规激活流程)

    Unity2019(或2020)个人版如何激活使用(不是激活成功教程,正规激活流程)首先去官网下载对应版本的UnityHub地址:https://unity.cn/releases安装完UnityHub,运行会提示登录Unity账号,可以用微信登录,点击右上角的这个按钮选择微信登录然后用手机扫码即可登录成功后,会提示激活,选择【手动激活】点击【保存许可证申请】选择本地的某个目录,保存Unity_lic.alf然后点击license.unity.cn…

    2022年7月26日
    41
  • JavaScript禁用浏览器后退按钮

    JavaScript禁用浏览器后退按钮~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~开发工具与关键技术:vs2015JavaScript作者:黄海峰撰写时间:2020.12.18~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1、代码如下:<scriptlang.

    2022年7月25日
    7

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号