首页 > 其他分享 >(五)模仿学习-完成后台管理页面查询

(五)模仿学习-完成后台管理页面查询

时间:2022-10-07 09:44:15浏览次数:49  
标签:xml 这个 查询 action 后台 我们 模仿 页面

我们从网上下载一份代码学习,模拟如果在实际工作中,我们入职的时候会首先拿到一个不复杂但是技术比较老的项目,因为作为新人很难去直接参与大而且新的项目进行开发。

  1. 我们从网上搜一份代码,先下载下来,代码如下:

代码的地址:

https://url56.ctfile.com/f/34653256-665303764-679728?p=7567 (访问密码: 7567)

  1. 将数据库导入到我们本地
  1. 将项目导入到本地环境中
  1. 首先我们将项目拷贝到我们的工作开发环境中
  1. 在IDE中导入(Eclipse、MyEclipse、IDEA都可以)

 

然后

继续

项目出现在导航栏

  1. 改动数据库连接的地址

因为所有的项目一定会有数据库的地址配置,不管是用的那种框架。所以我们需要找到对应的文件进行更改。修改下面的数据库密码和账户为自己的数据库地址。

  1. 一般此时我们只要下载的项目没问题,就可以运行了,我们使用Tomcat作为应用服务器,但下载的这个项目需要做一下转换,将项目转换一下,转换的位置如下:

 

转换项目

 

转换完进行勾选

接下来更改一个目录

目录更改如下

添加到Tomcat应用服务器中

然后我们可以运行代码了,项目没有报错

我们在浏览器中进行访问就可以得到对应的项目

点击登录后如果出现连接不上,更换系统中的MySQL的连接包就可以。

  1. 创建数据库

CREATE TABLE `t_zztl` (

`pid` INT(11) NOT NULL AUTO_INCREMENT,

`xdata` VARCHAR(100) DEFAULT NULL,

`ydata` VARCHAR(100) DEFAULT NULL,

PRIMARY KEY (`pid`)

) ENGINE=INNODB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8

  1. 创建实体类
  1. 模仿包里的文件,编写我们自己的实体类

创建实体类,名字模仿包里的文件,比如数据表交t_topic,会有两个文件分别叫TTopic.java和TTopic.hbm.xml这两个文件,我们也创建这两个文件。

  1. 模仿这两个文件完成里面的内容

先模仿第一个java文件

序列化和字段

 

这是这个实体对应的数据表创建语句,可以和上面的字段进行对应。,我们字段的类型和t_topic类似的有pid和author(所以我上面创建语句是按照这个项目里的形式创建的不是乱创建的,就是为了和它的字段匹配)

我们只有3个字段,所以字段会比较少,其中get/set字段自动生成。

多余的字段可以选择不写,但是t_topic中的字段也是少于TTopic.java中的字段?是因为只要包含数据库中的字段,可以在TTopic.java中写更多的属性是影响的。

TTopic.java里面有构造函数,我们也生成两个构造函数

自动生成一下,也可以自己写

后面没有了模仿的了,我们来看TTopic.hbm.xml。因为hbm.xml是hibernate的配置文件,所以要按照这个命名,如果你知道就直接写就可以了。

按照上图里的内容,我们做下面的更改

2、我们继续模仿DAO

先看我们的模仿文件TTopicDAO,先读这个文件。

根据这个文件的内容,我们需要写下面的部分

extends HibernateDaoSupport表示继承Hibernate的框架支持

private static final Log log = LogFactory.getLog(TTopicDAO.class);是表示日志的

然后就是字段属性

我们已经知道t_topic是有这样的字段

所以这些字段和数据库是有关系的

那么我们取字段也是按照数据表中的字段保留

继续模仿,下面这个在注释里写了什么都不做,但是我么可以通过名字和修饰符判断出来是要进行初始化的。

接下来这个方法从名字是看是要用来保存的,其中log.debug和log.error类似于system.out.println()使用来显示日志信息的,可以选择不要。只要更改实体就可以了。

更改后看一下

下面这个类似,表示的是删除

下面这个表示通过编号查询,所以有一个参数是id编号

我们把这两个复制过来进行改动

其中findById中一些内容注意

然后是下面的方法,这个可以理解为查询多个,多属性查询

这是更改后的,这个的用途可以理解为有多个字段查询的时候不需要单独一个个的写,比如通过xdata和ydata两个查询,就可以这个方法。

接下来的函数

这个函数通过名字我们就能知道这是通过属性或者字段去查询的,是单个属性字段。指定属性名和属性值的方式。

继续往后的函数

这个是通过某一个具体的属性完成的,我们只有三个属性,所以只需要写三个就可以了。但本质上是通过上面的属性名函数去查询的。

最后一个是查询所有的

这个是查询所有数据的,如果数据量不大可以使用,数据量大的话就不要使用了

 

 

接下来这几个函数涉及到

Hibernate的一些专业术语,我们如果对这个不感兴趣或者以后工作用不到,就模仿的写就可以了。这几个概念是持久状态,托管状态,瞬时状态。

我们直接模仿了

还有一个

这个可以理解为,获取实例对象。

  1. 模仿action包下的内容

创建我们的文件,这个地方有个习惯,大家起类名的时候进来要首字母大写,不要像这个系统这个样子。

然后看模仿类里的内容,这个action类似于controller层的作用,只不过比较简答,不那么复杂。

首先是继承类和主要属性

我们目前只有一个DAO,其中的属性和我们相关的目前只有pid 自动生成get/set方法

然后就是里面的方法,这个类主要处理的是页面过来的请求,那么我们目前只有一个请求,所以写一个方法就可以了。

上面这个方法带有view名称说明是个浏览作用的方法,我们选择模仿这个方法

更改之后就只有一个简单的成功值。

有一个问题,这个方法里并没有告诉我们返回的页面是哪个?所以还存在配置文件。

这个项目里有下面这几个配置文件。其它的可以自己看下,应该是不用我们做处理的。

struts.xml。

applicationContext.xml

在applicationContext.xml这个文件中我们可以知道,原来DAO和Action是需要配置的,所以我们将我们之前写过的类配置进来。

配置action和dao就可以了

先配置dao,这个位置不太要求,配置到上面框起来的部分,单独一行就可以了。

同理action也是如此。

其中property表示的是要注入的对象,就是这个注入的对象不需要你生成,框架帮你做了。一般也是配置文件里配置过的。

然后是struts.xml这个文件,这个里面就涉及到页面了。

下面就是我们要模仿的配置

我们配置的部分

根据这个配置我们需要创建一个JSP页面

内容呢,我们还是模仿其中一个JSP页面,此处我直接复制了。

然后我们运行查看一下我们的页面有没有问题

启动报错了,我们正好记录一下

错误信息

org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [com.dao.TZztlDAO] for bean with name 'TZztlDAO' defined in ServletContext resource [/WEB-INF/applicationContext.xml]; nested exception is java.lang.ClassNotFoundException: com.dao.TZztlDAO

可以看到applicationContext.xml和TZztlDAO这个关键信息,我们去看看

还要改一个地方

还有个地方

还有一个错误

少配置了一个

如果发现总是报找不到文件的错误,可以查看Tomcat发布的位置中是不是没有生成编译的文件,我们目前遇到的问题是jar引入缺少一个导致的(如果没有遇到这个问题可以忽略)。

启动后我们访问地址查看一下

http://localhost:8080/bbs_anime/zztlview.action

测试结果:

  1. 模仿action包下的内容

创建我们的文件,这个地方有个习惯,大家起类名的时候进来要首字母大写,不要像这个系统这个样子。

然后看模仿类里的内容,这个action类似于controller层的作用,只不过比较简答,不那么复杂。

首先是继承类和主要属性

我们目前只有一个DAO,其中的属性和我们相关的目前只有pid 自动生成get/set方法

然后就是里面的方法,这个类主要处理的是页面过来的请求,那么我们目前只有一个请求,所以写一个方法就可以了。

上面这个方法带有view名称说明是个浏览作用的方法,我们选择模仿这个方法

更改之后就只有一个简单的成功值。

有一个问题,这个方法里并没有告诉我们返回的页面是哪个?所以还存在配置文件。

这个项目里有下面这几个配置文件。其它的可以自己看下,应该是不用我们做处理的。

struts.xml。

applicationContext.xml

在applicationContext.xml这个文件中我们可以知道,原来DAO和Action是需要配置的,所以我们将我们之前写过的类配置进来。

配置action和dao就可以了

先配置dao,这个位置不太要求,配置到上面框起来的部分,单独一行就可以了。

同理action也是如此。

其中property表示的是要注入的对象,就是这个注入的对象不需要你生成,框架帮你做了。一般也是配置文件里配置过的。

然后是struts.xml这个文件,这个里面就涉及到页面了。

下面就是我们要模仿的配置

我们配置的部分

根据这个配置我们需要创建一个JSP页面

内容呢,我们还是模仿其中一个JSP页面,此处我直接复制了。

然后我们运行查看一下我们的页面有没有问题

启动报错了,我们正好记录一下

错误信息

org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [com.dao.TZztlDAO] for bean with name 'TZztlDAO' defined in ServletContext resource [/WEB-INF/applicationContext.xml]; nested exception is java.lang.ClassNotFoundException: com.dao.TZztlDAO

可以看到applicationContext.xml和TZztlDAO这个关键信息,我们去看看

还要改一个地方

还有个地方

还有一个错误

少配置了一个

如果发现总是报找不到文件的错误,可以查看Tomcat发布的位置中是不是没有生成编译的文件,我们目前遇到的问题是jar引入缺少一个导致的(如果没有遇到这个问题可以忽略)。

启动后我们访问地址查看一下

http://localhost:8080/bbs_anime/zztlview.action

测试结果:

  1. 模仿action包下的内容

创建我们的文件,这个地方有个习惯,大家起类名的时候进来要首字母大写,不要像这个系统这个样子。

然后看模仿类里的内容,这个action类似于controller层的作用,只不过比较简答,不那么复杂。

首先是继承类和主要属性

我们目前只有一个DAO,其中的属性和我们相关的目前只有pid 自动生成get/set方法

然后就是里面的方法,这个类主要处理的是页面过来的请求,那么我们目前只有一个请求,所以写一个方法就可以了。

上面这个方法带有view名称说明是个浏览作用的方法,我们选择模仿这个方法

更改之后就只有一个简单的成功值。

有一个问题,这个方法里并没有告诉我们返回的页面是哪个?所以还存在配置文件。

这个项目里有下面这几个配置文件。其它的可以自己看下,应该是不用我们做处理的。

struts.xml。

applicationContext.xml

在applicationContext.xml这个文件中我们可以知道,原来DAO和Action是需要配置的,所以我们将我们之前写过的类配置进来。

配置action和dao就可以了

先配置dao,这个位置不太要求,配置到上面框起来的部分,单独一行就可以了。

同理action也是如此。

其中property表示的是要注入的对象,就是这个注入的对象不需要你生成,框架帮你做了。一般也是配置文件里配置过的。

然后是struts.xml这个文件,这个里面就涉及到页面了。

下面就是我们要模仿的配置

我们配置的部分

根据这个配置我们需要创建一个JSP页面

内容呢,我们还是模仿其中一个JSP页面,此处我直接复制了。

然后我们运行查看一下我们的页面有没有问题

启动报错了,我们正好记录一下

错误信息

org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [com.dao.TZztlDAO] for bean with name 'TZztlDAO' defined in ServletContext resource [/WEB-INF/applicationContext.xml]; nested exception is java.lang.ClassNotFoundException: com.dao.TZztlDAO

可以看到applicationContext.xml和TZztlDAO这个关键信息,我们去看看

还要改一个地方

还有个地方

还有一个错误

少配置了一个

如果发现总是报找不到文件的错误,可以查看Tomcat发布的位置中是不是没有生成编译的文件,我们目前遇到的问题是jar引入缺少一个导致的(如果没有遇到这个问题可以忽略)。

启动后我们访问地址查看一下

http://localhost:8080/bbs_anime/zztlview.action

测试结果:

完成的练习代码:

https://url56.ctfile.com/f/34653256-688423125-6383b2?p=7567 (访问密码: 7567)

  1. 要访问我们创建表的入口action获取所有的数据(简化写法不分页)

根据下面我们模仿的类,我们需要查询所有的数据

我们把代码复制过去,然后进行查询

先改动SQL语句,因为我们只有两个字段,所以写的内容较少。

改动使用的DAO

然后改动生成对象存放在列表中

 

最后将数据返回到页面里

找到我们的页面view.jsp,在之前测试的地方存放我们的数据

我们去网上复制一份表格table拿过来使用

样式的部分我们自己复制一份就可以,如果不想复制就用我的,我的也是复制的。

我们用一个简单的表先放在这

运行看一下表格是否成功

虽然很丑但是数据来了(样式是否好看需要美工和前端工作的小伙伴帮大家,如果你自己写也可以的)

看一下我们的数据是不是过来了,先完成代码

 

然后我们去数据库中随便插入几个数据

我们接下来刷新下页面,会发现数据已经从数据库到页面了,完了我们的目标。

完成的练习代码:

https://url56.ctfile.com/f/34653256-688423186-a14ae2?p=7567 (访问密码: 7567)

  1. 我们想要完成一个删除的操作

首先要在页面上出现一个删除的按钮

在view.jsp中更改

改完删除之后,需要在页面上点击删除后向后台服务器查询数据,所以第一时间我们就想到了超链接。

其中href中需要添加一个请求地址,那么我们先空下,然后我们去后台完成这个地址,准备接收删除的请求。

首先还去对应的Action中编写方法。老样子先模仿已经有的Action

我们把这一段拿出来,放到我们自己的action中,进行修改。

先改Sql语句,其中delete from 是sql语句,pid的来源是在action的成员变量中接收到的。但是表名用的TZztl,为什么不是t_zztl,因为我们使用的框架Hibernate会帮我们进行转换。

这一句是Hibernate提供的操作,不需要我们自己写JDBC。

在topicAction中有两个变量,我们此时也选择复制过来,生成get/set方法

复制到我们的Action中

通过Message这个单词和括号里的“操作成功”意思,我们可以知道这是一个信息提示,可以直接模仿

而下面这种写法,我们能猜测到,这是删除之后,页面要重新请求的一个地址,可以看到topicAction中存在topicMana的方法。所以这是删除后请求的地址,我们可以在我们自己的action中请求之前的查看所有的方法。

最后一句看返回单词succeed是表示成功的意思

我们对我们的Action进行更改

接下来我们需要去struts.xml中进行配置

这是topicAction的,我们进行模仿

 

我们模仿写法

目前后台的地址有了,我们来看topic中的删除超链接我们也进行模仿

这里面有超链接和表格,我们都复制过去进行更改

我们将中的部分都拿到我们的页面中,我们之前写的交不用了。

Head半部分也做一下更改

头部引入的部分也做一下更改

 

我们启动测试看一下。

我们点击删除看一下

确认删除

点击确定,数据变少了

查看数据库也确实变少了

表名我们模仿成功了

 

标签:xml,这个,查询,action,后台,我们,模仿,页面
From: https://www.cnblogs.com/bqwzy/p/16759096.html

相关文章

  • admin后台管理数据库里的表
    admin后台管理django给您提供了一个可视化图形界面,来方便您来对数据库里的表进行增删改查的管理但是!使用admin后台管理你自己注册的模型表时,需要自行进行先注册该表!在应......
  • 关于windows-server-将程序置于后台一直运行的方法记录
    在linux下我们知道知道,可以使用&将程序命令置于后台,进行运行那么在windows下是否也有类似的方法呢,笔者查询研究了一下,还真有类似的方法核心命令是使用start/b的方式,举......
  • day06-多表查询02
    多表查询024.表复制自我复制数据(蠕虫复制)有时,为了对某个sql语句进行效率测试,我们需要海量数据时,可以用此法为表创建海量数据--为了对某个sql语句进行效率测试,我们需......
  • React+hook+ts+ant design封装一个具有编辑和新增功能的页面
    前言我是歌谣我有个兄弟巅峰的时候排名c站总榜19叫前端小歌谣曾经我花了三年的时间创作了他现在我要用五年的时间超越他今天又是接近兄弟的一天人生难免坎坷大不了从......
  • 从输入url到页面完成加载发生了什么(完整版)
    在写这篇文章之前本想着这个知识点涉及知识点太多太杂,找一篇大牛写的看看就算了,但是看了大概七八篇后,内心更纠结了——......
  • [答疑]编辑、删除操作是否和查询的关系为扩展
    ​​软件方法(下)分析和设计第8章分析之分析类图——知识篇(20211227更新)​​​​软件方法(下)分析和设计第9章分析之分析类图——案例篇(20211228更新)​​问题时间:2014/5/13......
  • 注册功能页面的搭建
    思路分析注册页面需要对用户提交的数据进行校验,并且需要对用户输入错误的地方进行提示!所有我们需要使用forms组件搭建注册页面!平时我们书写form是组件的时候是在views.p......
  • springboot 项目启动后访问不论什么请求的是spring的注册页面Please sign in Username
    解决方法:1.在启动类上添加注解@EnableAutoConfiguration(exclude={SecurityAutoConfiguration.class})2.或者:@SpringBootApplication(exclude={SecurityAutoConfigu......
  • 页面禁止复制功能
    前端实现禁止复制功能的方法,目前就两大类通过js阻止复制功能实现禁止复制。通过css样式user-select:none阻止选中实现禁止复制。目前一般选择其中一种,比如简书、掘金、......
  • 页面置换算法
    在程序运行过程中,如果要访问的页面不在内存中,就发生缺页中断从而将该页调入内存中。此时如果内存已无空闲空间,系统必须从内存中调出一个页面到磁盘对换区中来腾出空间。页......