基于SSM框架的CRM客户管理系

版权声明:不经本人允许,不得转载原创文章 https://blog.csdn.net/qq_32967665/article/details/80701376

一、项目介绍

    本项目基于SSM框架进行环境搭建和代码实现。具体功能有:根据客户名称(模糊匹配)查询客户、根据选择下拉菜单进行过滤查询、对客户进行基本CURD操作、分页查询(彩蛋!!!)。项目成果截图如下:


二、环境搭建

1、首先创建数据库表(数据字典表和客户表)

      

      

2、根据数据库表利用逆向工程生成pojo、mapper等文件

    首先对逆向工程配置文件generatorConfig.xml进行修改。修改内容包括数据库连接、代码生成包名(代码位置)具体如下:

   
    taotao是数据库项目名,userId对应的是数据库用户名,passwrod是用户数据库密码,根据自己情况修改。接下来是对生成代码位置及包名命名进行修改。
    
    targetPackage指的是生成代码你要放在哪个包下,这里的包名自己定义即可。targetProject指的是生成项目要放在什么地方默认为.\src即src下,这个不需要修改默认即可。enableSubPackages指的是你生成的包名后是否要加一个schema,这里我们不需要,生成的包名就是我们自己定义的com.taotao。下面的mapper配置照着上面配置就可以。而GeneratorSqlmap.java代码不需要修改,点击执行里面的main方法就可以生成代码了。需要注意的是利用逆向工程时需要导入5个包才可以。分别为:log4j、mybatis-3.2.3.jar、mybatis-generator-core-1.3.2.jar、mysql驱动、ojbc14.jar这个去网上下载逆向工程生成项目里应该都会有。

3、配置SpringMVC、Mybatis、Web.xml等配置文件

      SqlMapConfig.xml配置文件中只需要配置pojo的别名

   


    配置applicationContext-dao.xml本项目是分开配置dao、service.xml文件,也可以在一个spring.xml文件中整体配置。

    

    

    dao中都是一些数据连接和SqlsessionFactory和扫描的基本配置这里就不再赘述。接下来是配置applicationContext-service.xml文件。


    这里只需要配置扫描service包就可以。接下来是对springmvc.xml文件进行配置此处有大坑!!


    配置中需要注意的是在配置注解驱动的时候,配置一个消息转化器,目的是添加对文字编码的全局处理,解决数据回显中文时出现?的问题。在此处注解驱动中可以配置多个转化器,如全局的日期转化器,注意!!!如果此处没有配置这个消息转化器,在web.xml文件中配置解决POST请求乱码无效!!!                                                                                                              同时,在配置中有一个引入外部resource.properties文件,这个是为了解决数据字典中硬编码的问题,后面会介绍。

4、下拉菜单数据回显

    当客户点击下拉列表时应该显示出列表下选项,这时候就存在硬编码的问题,例如以前下拉列表中显示的是中文,今后要改成其他的文字或者内容,这样的话就需要重新改写代码,而将下拉的内容code写到配置文件中,今后需要修改的时候直接去修改配置文件,不需要去修改代码,上面的resource.properties里面就是对应了下拉列表Jsp文件中的取值。


    在jsp文件中<c:forEach/>中,items实体对象取的是fromType中的值,此处的fromType回显的值是通过后台controller中设置的属性值。在BaseDictMapper接口类中定义了一个根据数据字典编码code查询数据的方法。同时在Mapper.xml中定义查询语句。

    

    service和service的实现类在此就不再多说,直接@AutoWired上面的Mapper。

    

    

    创建一个QueryVO.java类用于保存下拉项以及分页对象。省略了getter、setter方法

    

    CustomerController中首先注入Service然后利用@Value("${fromType.code}")这样就取到了配置文件中对应的code值,在JSP中EL表达式的fromType就是model中设置的fromType。代码中的001是为了对比不使用解决硬编码问题的写法。


    当调用customerService.selectPageByQueryVo(vo)后会获得总记录数和查询结果集,此时page中存在了这两个参数信息,将page属性设置到Model中,返回customer.jsp。与此同时在Page.java中有一个List<T> rows属性用于保存Customer对象,当Page<Customer> page 后就变为List<Customer>,而page保存了查询的结果,rows保存了Customer对象,因此在jsp中对客户列表进行显示如下:

    

5、修改编辑页面实现

    修改页面的时候是通过前台点击了某个用户后记录去id并传给后台,后台通过Id查询到客户对应的信息,然后当用户点击修改按钮的时候,弹出的界面会将该用户的信息进行回显。Controller层只需要接受id并调用service中的方法。

    

    CustomerServiceImpl调用Mapper中的查询方法。

    

    customerMapper.xml中根据传入的id进行查询客户信息

    

    在jsp中需要通过Ajax方式去给回显的下拉框以及Input中显示数据

    

    

修改和删除都是一样的操作比较简单这里就不再说了。有需要源码的留下联系方式,我也会把源码发布到CSDN上,一起学习!

展开阅读全文

没有更多推荐了,返回首页