抓取网页数据(在实现简单网页上对数据内容进行增删改查部分+数据库表我用 )

优采云 发布时间: 2021-12-08 18:23

  抓取网页数据(在实现简单网页上对数据内容进行增删改查部分+数据库表我用

)

  在一个简单的网页上添加、删除、修改和检查数据内容,需要三个部分,即jsp网页部分+java后台部分+数据库表

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

  java后台程序:

  我们采用三层模型进行设计:servlet、service、dao层,并创建实体包对数据库和后端属性进行打包

  性切图片

  

  首先写函数的顺序是从servlet、service、dao层:

  servlet层代码如下:

  

 

  公共类 TypeServlet {

  TypeService ts=new TypeServiceImp();//调用服务层

  /*******添加**************************************** ** **************************************************/

  public int addtype(String name){

  int a=0;

  a=ts.addtype(name);

  返回一个;

  }

  /*******查看**************************************** **************************************************/

  公共列表 selets(){

  List list=new ArrayList();

  list=ts.selets(null);

  返回列表;

  }

  /*******删除**************************************** ** **************************************************/

  public int delete(int id){

  int a=0;

  types t=new types();

  t.setId(id);

  a=ts.delete(t);

  返回一个;

  }

  /*******修改**************************************** **************************************************/

  公共 int 更新(类型 t){

  int a=0;

  a=ts.update(t);

  返回一个;

  }

  /*******找一个**************************************** ****************************************************/<//p

p公共类型 selectone(int id){/p

ptypes t=new types();/p

pt.setId(id);/p

p类型 nt=ts.selectone(t);/p

p返回nt;/p

p}/p

p}/p

p服务层分为两层:接口层和实现层/p

pimg src='https://img-blog.csdn.net/20170802160709120?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzQxNzg5OTg=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center' alt=''//p

p界面程序如下:/p

ppre

 /pre/p

p公共接口 TypeService {/p

ppublic int addtype(String name);/p

ppublic List selets(types t);/p

ppublic int delete(types t);/p

ppublic int update(types t);/p

p公共类型 selectone(types t);/p

p}/p

p接口实现方案:/p

ppre

 /pre/p

p公共类 TypeServiceImp 实现 TypeService{/p

pTypeDao td = new TypeDaoImp();/p

ppublic int addtype(String name) {//注意返回的数据不要忘记修改/p

pint a=0;/p

pa=td.addtype(name);/p

p返回一个;/p

p}/p

p公共列表选择(类型 t){/p

pList list=new ArrayList();/p

plist=td.selets(t);/p

p返回列表;/p

p}/p

p/*******删除**************************************** ** **************************************************//p

ppublic int delete(types t) {/p

pint a=0;/p

pa=td.delete(t);/p

p返回一个;/p

p}/p

p/*******修改**************************************** **************************************************//p

ppublic int update(types t) {/p

pint a=0;/p

pa=td.update(t);/p

p返回一个;/p

p}/p

p/*******查找单个 ************************************ * ****************************************************//p

p公共类型 selectone(types t){/p

ptypes tp=new types();/p

ptp=td.selectone(t);/p

p返回tp;/p

p}/p

p}/p

p道层程序也分为接口层和实现层/p

p接口层程序:/p

ppre

 /pre/p

p公共接口 TypeDao {/p

ppublic int addtype(String name);/p

ppublic List selets(types t);/p

ppublic int delete(types t);/p

ppublic int update(types t);/p

p公共类型 selectone(types t);/p

p}/p

p实施方案:/p

ppre

 /pre/p

p公共类 TypeDaoImp 实现 TypeDao{/p

p连接 con=null;/p

pPreparedStatement ps=null;/p

p结果集 rs=null;/p

ppublic int addtype(String name){/p

pint a=0;/p

p试试{/p

p//连接数据库/p

pcon=Shujuku.conn();/p

pString sql="insert into typesname values(?)"; //设置id自增/p

pps=con.prepareStatement(sql);/p

pps.setString(1, name);/p

pa=ps.executeUpdate();/p

p} catch (SQLException e) {/p

p// TODO 自动生成的 catch 块/p

pe.printStackTrace();/p

p}/p

p返回一个;/p

p}/p

p公共列表选择(类型 t){/p

pList list=new ArrayList();/p

p试试{/p

p//连接数据库/p

pcon=Shujuku.conn();/p

pString sql="select*from typesname";/p

pps=con.prepareStatement(sql);/p

prs=ps.executeQuery();/p

pwhile(rs.next()){/p

ptypes ty=new types();/p

pty.setId(rs.getInt("id"));/p

pty.setTypename(rs.getString("typename"));/p

plist.add(ty);/p

p}/p

p} catch (SQLException e) {/p

p// TODO 自动生成的 catch 块/p

pe.printStackTrace();/p

p}/p

p返回列表;/p

p}/p

p/*******删除**************************************** ** **************************************************//p

ppublic int delete(types t) {/p

pint a=0;/p

p试试{/p

pcon=Shujuku.conn();/p

pString sql="delete from typesname wherelanguage-java">ps=con.prepareStatement(sql);

  a=ps.executeUpdate();

  } catch (SQLException e) {

  // TODO 自动生成的 catch 块

  e.printStackTrace();

  }

  返回一个;

  }

  /*******修改**************************************** **************************************************/

  public int update(types t) {

  int a=0;

  试试{

  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 自动生成的 catch 块

  e.printStackTrace();

  }

  返回一个;

  }

  /*******找一个**************************************** ****************************************************/<//p

p公共类型 selectone(types t) {/p

ptypes tp=new types();/p

p试试{/p

pcon=Shujuku.conn();/p

pString sql="select * from typesname where id=?";/p

pps=con.prepareStatement(sql);/p

pps.setInt(1, t.getId());/p

prs=ps.executeQuery();/p

pif(rs.next()){/p

ptp.setId(rs.getInt("id"));/p

ptp.setTypename(rs.getString("typename"));/p

p}/p

p} catch (SQLException e) {/p

p// TODO 自动生成的 catch 块/p

pe.printStackTrace();/p

p}/p

p返回tp;/p

p}/p

p}/p

p最后是数据库包。为了使用方便,创建一个包来存放数据库的驱动连接信息:/p

p代码如下:/p

ppre

 /pre/p

p公开课修宿{/p

p公共静态连接 conn(){/p

p//定义地址/p

pString url="jdbc:sqlserver://localhost:1433;DatabaseName=test;";/p

p//定义连接的初始值/p

pConnection connection=null;/p

p试试{/p

p//加载驱动/p

pClass.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");/p

p//建立连接/p

pconnection=DriverManager.getConnection(url, "sa", "DCX5201314");/p

p} catch (SQLException e) {/p

p// TODO 自动生成的 catch 块/p

pe.printStackTrace();/p

p} catch (ClassNotFoundException e) {/p

p// TODO 自动生成的 catch 块/p

pe.printStackTrace();/p

p}/p

p返回连接;/p

p}/p

p}/p

p属性包,代码如下:/p

ppre

 /pre/p

p公共类类型{/p

p私有int id;/p

p私有字符串类型名;/p

ppublic int getId() {/p

p返回id;/p

p}/p

ppublic void setId(int id) {/p

pthis.id = id;/p

p}/p

ppublic String getTypename() {/p

p返回类型名称;/p

p}/p

ppublic void setTypename(String typename) {/p

pthis.typename = typename;/p

p}/p

p}/p

pjava后台程序太多了;/p

p接下来是数据库部分:/p

p数据库部分主要是创建表。笔者使用SQL Server 2008。首先创建数据库test,创建表typename,设置两列为id typename,id为主键,int类型,自增为1; typename 设置为 varchar 类型,不能为空。/p

pimg src='https://img-blog.csdn.net/20170802162320361?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzQxNzg5OTg=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center' alt=''//p

p好了,数据库和java后端都设置好了,现在进入前端网页部分,/p

p页面的一部分/p

p在myeclipse中新建7个jsp文件/p

pimg src='https://img-blog.csdn.net/20170802163307903?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzQxNzg5OTg=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center' alt=''//p

pindex.jsp 是一个完整的网页/p

p设置代码如下:/p

ppre

 /pre/p

phead.jsp/p

ppre

 /pre/p

p这是头/p

pleft.jsp/p

ppre

 /pre/p

p这是左边/p

pright.jsp/p

ppre

 /pre/p

p这是右边/p

paddtype.jsp/p

ppre

 /pre/p

p0){/p

pRequestDispatcher rd = 请求/p

p.getRequestDispatcher("showtype.jsp");/p

prd.forward(request, response);/p

p}其他{/p

pRequestDispatcher rd = 请求/p

p.getRequestDispatcher("addtype.jsp");/p

prd.forward(request, response);/p

p}/p

p}/p

p%>

  添加新闻类型

  showtype.jsp

  

 

  展示类型

  数量

  输入名称

  操作

  updatetype.jsp

  

 

  修改新闻类型界面

  最终项目发布在 tomcat 上。

  以下地址积分系统调得太高了。我在此处重新上传了具有相同地址的副本:

  高分下载包文件在这里:

  也可以参考这篇文章的两个表关联操作:

  如果有什么问题,希望大家提出来,共同进步

  

  

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线