纳税服务系统一(用户模块)【简单增删改查、日期组件、上传和修改头像】(一)

简介: 为了更好地掌握SSH的用法,使用一个纳税服务系统来练手…..搭建SSH框架环境在上一篇已经详细地说明了。

前言


为了更好地掌握SSH的用法,使用一个纳税服务系统来练手…..搭建SSH框架环境在上一篇已经详细地说明了。http://blog.csdn.net/hon_3y/article/details/72630031

用户模块:本文主要的知识点:

  • 简单的CRUD
  • 使用日期组件让用户挑选日期
  • 上传和修改头像


用户模块需求


拥有增删改查和导入导出到EXCEL的功能

22.jpg

这里写图片描述

添加用户:有了这个界面,我们就知道实体表的属性有什么了。

23.jpga



添加配置文件


每个模块都应该有自己的配置文件,这样的话就方便我们管理模块之间的功能,不用把所有的配置都写在总文件中。

因此,我们在user模块创建了一个user包,下面又创建了config包来管理配置文件

24.jpg这里写图片描述


JavaBean与映射文件


JavaBean


根据上面需求要添加用户的属性,直接写就行了。


public class User implements Serializable {
    private String id;
    private String dept;
    private String account;
    private String name;
    private String password;
    private String headImg;
    private boolean gender;
    private String state;
    private String mobile;
    private String email;
    private Date birthday;
    private String memo;
    public static String USER_STATE_VALID = "1";//有效,
    public static String USER_STATE_INVALID = "0";//无效
    public User() {
    }
    public User(String id, String dept, String account, String name, String password, String headImg, boolean gender, String state, String mobile, String email, Date birthday, String memo) {
        this.id = id;
        this.dept = dept;
        this.account = account;
        this.name = name;
        this.password = password;
        this.headImg = headImg;
        this.gender = gender;
        this.state = state;
        this.mobile = mobile;
        this.email = email;
        this.birthday = birthday;
        this.memo = memo;
    }
    //各种setter和getter
}

User.hbm.xml

映射文件也非常简单,因为没有关联关系字段,直接写属性就行了。

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <class name="zhongfucheng.user.entity.User" table="user">
        <id name="id" type="java.lang.String">
            <column name="id" length="32" />
            <generator class="uuid.hex" />
        </id>
        <property name="name" type="java.lang.String">
            <column name="name" length="20" not-null="true" />
        </property>
        <property name="dept" type="java.lang.String">
            <column name="dept" length="20" not-null="true" />
        </property>     
        <property name="account" type="java.lang.String">
            <column name="account" length="50" not-null="true" />
        </property>
        <property name="password" type="java.lang.String">
            <column name="password" length="50" not-null="true" />
        </property>
        <property name="headImg" type="java.lang.String">
            <column name="headImg" length="100" />
        </property>
        <property name="gender" type="java.lang.Boolean">
            <column name="gender" />
        </property>
        <property name="email" type="java.lang.String">
            <column name="email" length="50" />
        </property>
        <property name="mobile" type="java.lang.String">
            <column name="mobile" length="20" />
        </property>
        <property name="birthday" type="java.util.Date">
            <column name="birthday" length="10" />
        </property>
        <property name="state" type="java.lang.String">
            <column name="state" length="1" />
        </property>
        <property name="memo" type="java.lang.String">
            <column name="memo" length="200" />
        </property>
    </class>
</hibernate-mapping>

写完映射文件,记得要在Spring的总配置文件中读取映射文件…值得注意的是,用户模块专门用一个user包来管理下面的代码,这样好管理!

25.jpg这里写图片描述



编写Dao


UserDao接口


/**
 * UserDao接口,继承着UserDao
 * */
public interface UserDao extends BaseDao<User> {
}


UserDaoImpl实现类


把UserDaoImple对象添加到IOC容器中管理

注意:因为我们在BaseDao中使用的是HibernateDaoSupport这个API,因此我们在UserDao中是需要在XML配置,注入SessionFactory的。

在总配置文件中是有专门注入SessionFactory的bean配置的


<!-- 所有业务dao的parent -->
    <bean id="baseDao" abstract="true">
        <property name="sessionFactory" ref="sessionFactory"></property>
    </bean>

/**
 * 继承着BaseDaoImpl实现类,就有了CRUD的方法
 * 又实现了UserDao接口,那么UserDao接口就可以对User模块有相对应的补充
 *
 * */
public class UserDaoImpl extends BaseDaoImpl<User> implements UserDao {
}
<bean id="userDaoImpl" class="zhongfucheng.user.dao.impl.UserDaoImpl" parent="baseDao"></bean>
    <context:component-scan base-package="zhongfucheng.user"/>
  • 把user模块的spring配置文件添加到总配置文件中


<!--这是user模块的配置文件-->
    <import resource="classpath:zhongfucheng/user/config/user-bean.xml"/>


编写Service


Service接口


/**
     * Created by ozc on 2017/5/23.
     */
    public interface UserService {
        //新增
        public void save(User user);
        //更新
        public void update(User user);
        //根据id删除O
        public void delete(Serializable id);
        //根据id查找
        public User findObjectById(Serializable id);
        //查找列表
        public List<User> findObjects();
    }


UserServiceImpl


package zhongfucheng.user.service.impl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
import zhongfucheng.user.dao.UserDao;
import zhongfucheng.user.entity.User;
import zhongfucheng.user.service.UserService;
import java.io.Serializable;
import java.util.List;
/**
 * Created by ozc on 2017/5/23.
 */
@Service
public class UserServiceImpl implements UserService {
    @Qualifier("userDaoImpl")
    @Autowired
    private UserDao userDaoImpl;
    @Override
    public void save(User user) {
        userDaoImpl.save(user);
    }
    @Override
    public void update(User user) {
        userDaoImpl.update(user);
    }
    @Override
    public void delete(Serializable id) {
        userDaoImpl.delete(id);
    }
    @Override
    public User findObjectById(Serializable id) {
        return userDaoImpl.findObjectById(id);
    }
    @Override
    public List<User> findObjects() {
        return userDaoImpl.findObjects();
    }
}


UserAction


UserAction应该根据增删改查应该有这么几个方法:

/**
 * 1.提供新增页面
 * 2.确定新增用户方法
 * 3.提供修改页面
 * 4.确定修改用户方法
 * 5.删除用户
 * 6.批量删除用户
 * 7.提供列表展示页面
 *
 * */
package zhongfucheng.user.action;
import com.opensymphony.xwork2.ActionSupport;
/**
 * Created by ozc on 2017/5/23.
 */
/**
 * 1.提供新增页面
 * 2.确定新增用户方法
 * 3.提供修改页面
 * 4.确定修改用户方法
 * 5.删除用户
 * 6.批量删除用户
 * 7.提供列表展示页面
 *
 *
 * */
public class UserAction extends ActionSupport {
    public String listUI() {
        return null;
    }
    public String addUI() {
        return null;
    }
    public String editUI() {
        return null;
    }
    public String edit() {
        return null;
    }
    public String delete() {
        return null;
    }
    public String add() {
        return null;
    }
    public String deleteSelect() {
        return null;
    }
}
目录
相关文章
|
11天前
|
存储 安全 搜索推荐
酒店管理系统的数据库的应用以及选择
酒店管理系统数据库关乎运营效率和服务质量。数据库用于数据存储、管理、分析及客户关系管理,确保房态与预订精准。选择时重视性能稳定性、数据安全、易用性、可扩展性和成本效益。合适的数据库能提升酒店运营效率并优化客户体验。
21 2
|
19天前
|
存储 关系型数据库 MySQL
轻松入门MySQL:数据库设计之范式规范,优化企业管理系统效率(21)
轻松入门MySQL:数据库设计之范式规范,优化企业管理系统效率(21)
|
22天前
|
安全 网络安全 数据库
数据安全之认识数据库漏洞扫描系统
数据库漏洞扫描系统是一种专业的数据库安全产品,它基于对数据库访问控制、数据库审计、资源管理、数据库加密以及数据库系统本身安全机制的深入分析,深入研究和发现数据库系统本身存在的BUG以及数据库管理、使用中存在的问题。
36 4
|
1月前
|
SQL 监控 安全
数据安全之认识数据库审计系统
随着企业业务数据量的不断增长和数据存储的集中化,数据库成为企业的核心资产之一。然而,数据库面临着各种安全威胁,如SQL注入、权限滥用、数据泄露等。为了保障数据库的安全性和完整性,企业需要采取有效的审计措施来监控和记录数据库的操作行为。本文让我们一起来认识数据库审计系统。
32 1
|
9天前
|
SQL 关系型数据库 数据库
Python中SQLite数据库操作详解:利用sqlite3模块
【4月更文挑战第13天】在Python编程中,SQLite数据库是一个轻量级的关系型数据库管理系统,它包含在一个单一的文件内,不需要一个单独的服务器进程或操作系统级别的配置。由于其简单易用和高效性,SQLite经常作为应用程序的本地数据库解决方案。Python的内置sqlite3模块提供了与SQLite数据库交互的接口,使得在Python中操作SQLite数据库变得非常容易。
|
11天前
|
存储 NoSQL 安全
物流系统数据库的应该以及选择
物流系统数据库在信息化建设中扮演关键角色,用于数据存储、管理和共享,支持决策,并优化资源配置。选择数据库时要考虑类型(如关系型或NoSQL)、性能稳定性、成本易用性、安全性和未来发展需求。完善数据管理与安全措施,确保数据准确性和系统扩展性,是提升物流效率和企业竞争力的关键。
16 3
|
29天前
|
SQL 存储 安全
【软件设计师备考 专题 】数据库管理系统的功能和特征
【软件设计师备考 专题 】数据库管理系统的功能和特征
73 0
|
1月前
|
SQL 编解码 数据库
MyKtv点歌系统前台主要功能实现,内附数据库脚本,可以直接运行
MyKtv点歌系统前台主要功能实现,内附数据库脚本,可以直接运行
13 1
MyKtv点歌系统前台主要功能实现,内附数据库脚本,可以直接运行
|
1月前
|
存储 分布式计算 大数据
现代化数据库技术——面向大数据的分布式存储系统
传统的关系型数据库在面对大规模数据处理时遇到了诸多挑战,而面向大数据的分布式存储系统应运而生。本文将深入探讨现代化数据库技术中的分布式存储系统,包括其优势、工作原理以及在大数据领域的应用。
|
1月前
|
架构师 算法 关系型数据库
数据库架构师之道:MySQL安装与系统整合指南
数据库架构师之道:MySQL安装与系统整合指南
45 0