简单界面+JAVA后台+数据库实现页面对数据库的两张关联表操作
2017-08-09 22:16
519 查看
前几天写了简单的从页面对数据库进行的操作,下面对该功能进行升级,操作两张相关联的表;上次是对新闻类型的修改,我在这里就不重复了,可以查看我之前的博客,
首先从页面说起:
页面部分:
页面部分我用了10个JSP完成的如图:
也就是比上次的多了几个news后缀的几根文件
1、添加新闻内容
addnews,代码如下
代码如下:
代码如下:
servlet层:
代码如下:
代码如下:
主外键关系:
之后还有对这篇文章的改进加入了C标签把页面的脚本都去掉:http://blog.csdn.net/qq_34178998/article/details/77579408
代码就这么多:最后来看下运行效果吧:
后期加功能再继续更新。。。。。。
首先从页面说起:
页面部分:
页面部分我用了10个JSP完成的如图:
也就是比上次的多了几个news后缀的几根文件
1、添加新闻内容
addnews,代码如下
<% request.setCharacterEncoding("UTF-8"); String title=request.getParameter("title");//获取文本框输入的值 String contain=request.getParameter("contain");//获取文本框输入的值 String autor=request.getParameter("autor");//获取文本框输入的值 String typeid=request.getParameter("typeid");//获取文本框输入的值 if(title!=null){ //新建构造函数里面的对象 news n=new news(title,contain,autor,Integer.parseInt(typeid)); //新建Servlet层对象 NewsServlet ns=new NewsServlet(); int a=ns.addnews(n);//注意里面的参数,是news里面的参数,传news对象 if(a>0){ //添加成功跳到show界面 response.sendRedirect("shownews.jsp"); //添加成功转到查看页面 }else{ //添加失败在本界面界面 response.sendRedirect("addnews.jsp"); //添加成功转到查看页面 } } %> </head> <body style="background-image:url(bg3.jpg)"> <h1>这是添加新闻内容界面</h1></hr> <form action="addnews.jsp" method="post"> 标题:<input type="text" name="title"><br/> 内容:<input type="text" name="contain"><br/> 作者:<input type="text" name="autor"><br/> 类型:<select name="t 4000 ypeid"> <% //servlet对象//遍历寻找类型 Type_NewsServlet tn=new Type_NewsServlet(); List<type_news> list=tn.selectall();//调用其中的查看全部的方法 for(int i=0;i<list.size();i++){ type_news tpn=list.get(i); %> <option value="<%=tpn.getId() %>"><%=tpn.getTypename() %></option> <% } %> </select> <input type="submit" value="提交"> </form> </body>shownews.jsp(用来查看页面)
代码如下:
<script type="text/javascript"> function delete_(id){ var f=confirm("是否确定删除?"); if(f){ location.href="shownews.jsp?ids="+id; }else{ alert("您取消删除"); } } function update(id){ location.href="updatenews.jsp?ids="+id; } </script> </head> <% String id=request.getParameter("ids"); if(id!=null){ NewsServlet ns=new NewsServlet(); int a =ns.delete(Integer.parseInt(id)); // us.deleten(Integer.parseInt(id)); response.sendRedirect("shownews.jsp"); } %> <body style="background-image:url(bg3.jpg)"> <h1>这是展示界面</h1> <table border="1"> <tr><td>编号</td><td>标题</td><td>内容</td><td>作者</td><td>类型</td><td>操作</td></tr> <% //调用Servlet取到数据 NewsServlet ns=new NewsServlet(); List<news> list =new ArrayList<news>(); list=ns.selectall(null); for(int i=0;i<list.size();i++){ news n=list.get(i); %> <tr > <td><%=n.getId() %></td> <td><%=n.getTitle() %></td> <td><textarea name="content" cols="40" rows="6" readonly="readonly"><%=n.getContain() %></textarea></td> <td><%=n.getAutor() %></td> <td><%=n.getTypename() %></td> <td><input type="button" onclick="update(<%=n.getId()%>)" value="修改"/> <input type="button" onclick="delete_(<%=n.getId()%>)" value="删除"/></td> </tr> <% } %> </body>updatenews.jsp(更新)
代码如下:
<body style="background-image:url(bg3.jpg)"> <% request.setCharacterEncoding("UTF-8"); String id=request.getParameter("ids"); NewsServlet tsl=new NewsServlet(); //导包 news ts=new news();//导包 String type= request.getParameter("type"); if(type!=null){ String id1=request.getParameter("id"); String title=request.getParameter("title");//从下面的输入取值 String contain=request.getParameter("contain"); String autor=request.getParameter("autor"); ts.setId(Integer.parseInt(id1));//强转 ts.setTitle(title); ts.setContain(contain); ts.setAutor(autor); int a=tsl.update(ts); response.sendRedirect("shownews.jsp"); }else{ if(id!=null){ ts=tsl.selectone(Integer.parseInt(id)); } } %> <h1>修改新闻界面</h1> <hr/> <form action="updatenews.jsp" method="post"> <input type="hidden" name="type" value="3"> <input type="hidden" value="<%=ts.getId() %>"name="id"> 标题:<input type="text" value="<%=ts.getTitle() %>" name="title"><br/> 内容:<input type="textarea" value="<%=ts.getContain() %>" name="contain"><br/> 作者:<input type="text" value="<%=ts.getAutor() %>" name="autor"><br/> <input type="submit" value="确认修改"> </body>接下来是后台程序:
servlet层:
代码如下:
public class NewsServlet { //新建后面层的对象,方便调用方法 NewsService ns=new NewsServiceImp(); /**********添加新闻内容***************************************************/ public int addnews(news n){ int a=0; a=ns.addnews(n); return a; } /**********查看新闻内容***************************************************/ public List<news> selectall(news n){ List<news> list=ns.selectall(null); return list; } /**********删除新闻内容***************************************************/ public int delete(int id){ int a=0; a=ns.delete(id); return a; } /**********查找一个新闻内容***************************************************/ public news selectone(int id){ news nn=ns.selectone(id); return nn; } /**********更新新闻内容***************************************************/ public int update(news s){ int a=0; a=ns.update(s); return a; } }service层:
代码如下:
public interface NewsService { public int addnews(news n); public List<news> selectall(news n); public int delete(int id); public news selectone(int id); public int update(news s); }ServiceImp程序:
public class NewsServiceImp implements NewsService{//接口 //新建后面层的对象,方便调用方法 NewsDao nd=new NewsDaoImp(); /**********添加新闻内容***************************************************/ public int addnews(news n) { int a=0; a=nd.addnews(n); return a; } /**********查看新闻内容***************************************************/ public List<news> selectall(news n) { List<news> list=nd.selectall(n); return list; } /**********删除新闻内容***************************************************/ public int delete(int id) { int a=0; a=nd.delete(id); return a; } /**********查找一个新闻内容***************************************************/ public news selectone(int id){ news nn=nd.selectone(id); return nn; } /**********更新新闻内容***************************************************/ public int update(news s) { int a=0; a=nd.update(s); return a; } }Dao层:
public interface NewsDao { public int addnews(news n); public List<news> selectall(news n); public int delete(int id); public news selectone(int id); public int update(news s); }DaoImp程序:
public class NewsDaoImp implements NewsDao{//接口 Connection conn=null; ResultSet rs=null; PreparedStatement ps=null; /**********添加新闻内容***************************************************/ public int addnews(news n) { int a=0; //连接数据库 try { conn=shujuku.conn(); String sql="insert into news values(?,?,?,?)"; ps=conn.prepareStatement(sql); ps.setString(1, n.getTitle()); ps.setString(2, n.getContain()); ps.setString(3, n.getAutor()); ps.setInt(4, n.getTypeid()); a=ps.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } return a; } /**********查看新闻内容***************************************************/ public List<news> selectall(news n) { List<news> list=new ArrayList<news>(); try { conn=shujuku.conn(); String sql="select n.id,n.title,n.contain,n.autor,ts.typename " + "from news as n " + "inner join types as ts " + "on n.typeid=ts.id"; ps=conn.prepareStatement(sql); rs=ps.executeQuery(); while(rs.next()){ //另一个构造函数 news ty=new news(rs.getInt("id"), rs.getString("title"), rs.getString("contain"),rs.getString("autor"),rs.getString("typename")); list.add(ty); } } catch (SQLException e) { e.printStackTrace(); } return list; } /**********删除新闻内容***************************************************/ public int delete(int id) { int a=0; try { conn=shujuku.conn(); String sql="delete from news where id="+id; ps=conn.prepareStatement(sql); a=ps.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } return a; } /**********查找一个新闻内容***************************************************/ public news selectone(int id) { news nn=new news();//还要有一个空的构造方法3 try { conn=shujuku.conn(); String sql="select*from news where id="+id; ps=conn.prepareStatement(sql); rs=ps.executeQuery(); if(rs.next()){ nn.setId(rs.getInt("id")); nn.setTitle(rs.getString("title")); nn.setContain(rs.getString("contain")); nn.setAutor(rs.getString("title")); nn.setTypeid(rs.getInt("typeid")); } } catch (SQLException e) { e.printStackTrace(); } return nn; } /**********更新新闻内容***************************************************/ public int update(news s) { int a=0; try { conn=shujuku.conn(); String sql="update news set title=?,contain=?,autor=? where id=?"; ps=conn.prepareStatement(sql); ps.setString(1, s.getTitle()); ps.setString(2, s.getContain()); ps.setString(3, s.getAutor()); ps.setInt(4, s.getId()); a=ps.executeUpdate(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return a; } }数据库的表:
主外键关系:
之后还有对这篇文章的改进加入了C标签把页面的脚本都去掉:http://blog.csdn.net/qq_34178998/article/details/77579408
代码就这么多:最后来看下运行效果吧:
后期加功能再继续更新。。。。。。
相关文章推荐
- 简单页面+java后台+数据库,实现从页面对数据库的增删改查
- 简单页面(C标签)+java后台+数据库,对前篇文章的改进
- 很全面的登陆注册界面实现,包括页面显示和后台数据库交互(写了我一下午)
- Json树形结构数据转Java对象并存储到数据库的实现-超简单的JSON复杂数据处理
- 【iOS界面处理】使用storyboard实现页面跳转,简单的数据传递
- 页面用ajax实现简单的连接数据库
- JAVA SPRING MVC 实现一个简单的页面显示功能
- MVC4中AJAX Html页面打开调用后台方法实现动态加载数据库中的数据
- 【iOS界面处理】使用storyboard实现页面跳转,简单的数据传递
- 使用java实现简单QQ登录界面
- Java导出页面数据或数据库数据至Excel文件并下载,采用JXL技术,小demo(servlet实现)
- 用简单工厂方法设计的数据库查询(JAVA代码实现)
- 【iOS界面处理】使用storyboard实现页面跳转,简单的数据传递
- 【iOS界面处理】使用storyboard实现页面跳转,简单的数据传递
- awt实现登陆界面+数据库——学java,零基础不怕,不只要理论,更要实践+项目<a href...
- java ajaxForm 实现文件上传后台成功,页面走error方法
- 设计组织树 通过java拼接xml组织树 实现界面组织树 通过数据库配置动态决定菜单树显示与否、排列优先
- 5.页面用ajax实现简单的连接数据库
- 简单实现后台订单页面 上一单,下一单 的按钮
- PHP使用frameset制作后台界面时,怎样实现通过操作左边框架,使右边框架中的页面跳转?