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

简介: 为了更好地掌握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;
    }
}
目录
相关文章
|
22天前
|
SQL 关系型数据库 数据库
Python SQLAlchemy模块:从入门到实战的数据库操作指南
免费提供Python+PyCharm编程环境,结合SQLAlchemy ORM框架详解数据库开发。涵盖连接配置、模型定义、CRUD操作、事务控制及Alembic迁移工具,以电商订单系统为例,深入讲解高并发场景下的性能优化与最佳实践,助你高效构建数据驱动应用。
205 7
|
4月前
|
缓存 NoSQL Linux
在CentOS 7系统中彻底移除MongoDB数据库的步骤
以上步骤完成后,MongoDB应该会从您的CentOS 7系统中被彻底移除。在执行上述操作前,请确保已经备份好所有重要数据以防丢失。这些步骤操作需要一些基本的Linux系统管理知识,若您对某一步骤不是非常清楚,请先进行必要的学习或咨询专业人士。在执行系统级操作时,推荐在实施前创建系统快照或备份,以便在出现问题时能够恢复到原先的状态。
381 79
|
2月前
|
安全 关系型数据库 数据管理
阿里云数据库:构建高性能与安全的数据管理系统
阿里云数据库提供RDS、PolarDB、Tair等核心产品,具备高可用、弹性扩展、安全合规及智能运维等技术优势,广泛应用于电商、游戏、金融等行业,助力企业高效管理数据,提升业务连续性与竞争力。
|
2月前
|
存储 数据库 开发者
Python SQLite模块:轻量级数据库的实战指南
本文深入讲解Python内置sqlite3模块的实战应用,涵盖数据库连接、CRUD操作、事务管理、性能优化及高级特性,结合完整案例,助你快速掌握SQLite在小型项目中的高效使用,是Python开发者必备的轻量级数据库指南。
235 0
|
3月前
|
存储 关系型数据库 MySQL
MySQL数据库中进行日期比较的多种方法介绍。
以上方法提供了灵活多样地处理和对比MySQL数据库中存储地不同格式地日子信息方式。根据实际需求选择适当方式能够有效执行所需操作并保证性能优化。
375 10
|
4月前
|
SQL 存储 关系型数据库
MySQL功能模块探秘:数据库世界的奇妙之旅
]带你轻松愉快地探索MySQL 8.4.5的核心功能模块,从SQL引擎到存储引擎,从复制机制到插件系统,让你在欢声笑语中掌握数据库的精髓!
166 26
|
6月前
|
SQL 数据库 开发者
Python中使用Flask-SQLAlchemy对数据库的增删改查简明示例
这样我们就对Flask-SQLAlchemy进行了一次简明扼要的旅程,阐述了如何定义模型,如何创建表,以及如何进行基本的数据库操作。希望你在阅读后能对Flask-SQLAlchemy有更深入的理解,这将为你在Python世界中从事数据库相关工作提供极大的便利。
616 77
|
4月前
|
SQL 监控 安全
数据库安全审计系统
Next-DBM数据库审计系统助力企业解决数据安全难题,提供统一身份管理、全方位监控、智能风险识别、完整审计追溯及精细化权限管控,有效防范数据泄露与内部威胁,保障企业核心资产安全,满足合规要求,提升运维效率。
|
6月前
|
XML 数据库 Android开发
Android数据库的使用(增删改查)
本文介绍了一个简单的数据库操作Demo,包含创建数据库、增删改查功能。通过5个按钮分别实现创建数据库、插入数据、删除数据、更新数据和查询数据的操作。代码结构清晰,适合初学者学习Android SQLite数据库基础操作。
178 5
|
6月前
|
关系型数据库 MySQL 定位技术
MySQL与Clickhouse数据库:探讨日期和时间的加法运算。
这一次的冒险就到这儿,期待你的再次加入,我们一起在数据库的世界中找寻下一个宝藏。
273 9

热门文章

最新文章