SpringMVC+Mybatis写调查问卷管理系统 您所在的位置:网站首页 基于web的问卷调查系统开发 SpringMVC+Mybatis写调查问卷管理系统

SpringMVC+Mybatis写调查问卷管理系统

2024-01-30 22:10| 来源: 网络整理| 查看: 265

    最近一直想找点事情做,前几个星期马原老师说要做一份社会调查需要用到调查问卷,然后基本都是网上直接用现成的网站直接做的,我在想自己是不是也能做一个类似简单的管理系统呢。。然后一做就做了半个月,前几天总算是做好了,感觉要是自己勤快一点可能几天就能写好吧,下面是我在写这个调查系统的全部过程和遇到的问题解决方法。

    首先是在脑海中构建整个系统的模型,我是喜欢根据这个模型先写好数据库的脚本,然后再写用到的POJO,和数据库相连接的sql类和mybatis的配置文件,最后将这些东西在jsp页面中拼接起来,SpringMVC算是一个粘合剂将这些东西很好的组合在一起。

    我的构想:

    首先和其他系统一样,应该先有一个账号以便起到多个人使用时使数据分开标识的作用,那么就应该有登录界面和注册账号页面。。这个很简单,随便搞搞就好了。

    那么来到管理者的主界面,应该有创建问卷,查看/进行问卷调查,和查看问卷调查结果的功能,到这里,这个系统的大致模型已经有了。

    再细想,数据库的数据表,首先应该有存放用户账号密码的表,叫user吧,其次应该有一张存放题目信息的表,叫inf吧,然后就是应该再有一张存放对应题目选项的表,叫det,然后每张表里面的数据就按照意思建就好了。

    然后对应每张表,POJO类应该也有三个。。为了偷懒我直接都叫了表的名字。

    下面是我mysql建表的脚本代码:

create database users; use users; create table user( username varchar(10) primary key, pwd varchar(20) ); create table inf( num int, username varchar(10), des varchar(200), foreign key(username) references user(username) ); create table det( num int, id int, opt varchar(30), username varchar(10), value int default '0', foreign key(username) references user(username) );

我的num是存题目的编号,id是存选项的编号。

然后就可以开始写POJO的java代码了,还有相应的sql语句,由于整个工程涉及的代码太多,就不一一放上来了,就挑一些重要的放,然后整个工程代码附上github的网址:https://github.com/iunique/IdeaProject。

项目基本骨架:

简介:

Dao放着和数据库相连接的代码,entity里放这POJO类,handles里面放的是页面控制器,用于处理页面映射以及起到servlet的作用,处理请求,跳转页面,config.xml放mybatis的基本配置文件,tab.xml放着sql语句,页面我用到的很多,登录界面login,注册界面register,还有相应的登录和注册判断跳转页面,然后index是用户主界面,对应着三个功能的界面,建调查问卷,进行问卷调查,查看调查文件结果。

先记录一下过程中遇到的几大问题:

1.中文乱码问题

2.WEB-INF目录下限制访问问题

3.算法问题,也就是如何用代码实现整个系统

解决方法:

1.中文乱码算是困扰我最久的问题,因为需要改的地方有很多,mysql数据库存储时的编码,解码设置,jsp页面编码解码的设置,以及mybatis配置文件中编码设置,在java代码处理数据时的编码解码设置。。只有全部搞好了才能实现中文在页面中的正常读取和呈现,少一步都不行,因为平时不用中文读取和呈现,基本没发现还有这么大的一个问题。。然后为此搞了一天最后写了博客:https://blog.csdn.net/qq_37497322/article/details/80034487

2.出于安全性考虑,jsp文件最好放在限制访问的WEB-INF目录下,

不用springMVC解决方法:https://blog.csdn.net/qq_37497322/article/details/80027464

一开始我是没用springMVC的,全部是用上面的方法+大量的web.xml配置映射+十几个servlet。。。代码量大大增加而且很复杂,最后我还是屈服了,花了一两天把代码改成了springMVC版的,映射文件和servlet全交给Controller处理。。才体会到了springMVC的强大,还有自带的表单自动填补POJO类的功能。。。简直不要太强

3.这个问题感觉是长期积累的代码感觉。。。想了一会实现方法,就写出来了,这东西感觉不好表达,或许是一年多的acm经验带来的加成吧,下面贴代码

首先是我的config.xml,也就是mybatis的配置文件,需要注意连接的时候加上字符集,url处最后加上

useUnicode=true&characterEncoding=UTF-8的字样可以解决写入数据库时的编码问题:

然后是tab.xml

select COUNT(*) from user where username = '${value}'


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有