mpthink 2016-10-22 15:00 采纳率: 0%
浏览 925

在springmvc+mybatis项目中,如何设计优雅的entity class?

当前想用spring+springmvc+mybatis搭建一个MS系统,刚使用spring+mybatis不久,基本上可以完成想要的功能。
但是在设计entity的时候,对于有外键依赖的entity class,不知道如何设计比较好。
望大牛们指点一下。

以用户表为例, User里面的外键roleId, 在这里到底是用一个Int roleId 还是Role对象呢?
疑惑的地方:

  • 在实际使用过程中,在读取User的时候需要同时读取Roled的信息,Role貌似合理
  • 但是在插入的时候,仅插入roleId,而DAO层插入参数是User 对象,需要构造一个Role对象并set到User中。。。

数据库表:

 CREATE TABLE IF NOT EXISTS `wms`.`wms_user` (
    `user_id` INT unsigned NOT NULL AUTO_INCREMENT COMMENT '用户ID',
    `user_name` VARCHAR(15) NOT NULL DEFAULT '' COMMENT '用户名称',
    `user_realname` VARCHAR(40) NOT NULL DEFAULT '' COMMENT '用户真实姓名',
    `user_password` VARCHAR(40) NOT NULL DEFAULT '' COMMENT '用户密码',
    `user_email` VARCHAR(40) NOT NULL DEFAULT '' COMMENT 'email地址',
    `user_role_id` SMALLINT(4) unsigned NOT NULL DEFAULT '0' COMMENT '用户角色',
    PRIMARY KEY (`user_id`)
)ENGINE = InnoDB DEFAULT CHARSET=UTF8 COMMENT '用户表';

CREATE TABLE IF NOT EXISTS `WMS`.`wms_role`(
    `role_id` INT unsigned NOT NULL AUTO_INCREMENT COMMENT '角色id',
    `role_name` VARCHAR(20) NOT NULL DEFAULT '' COMMENT '角色名称',
    `role_permission` VARCHAR(200) NOT NULL DEFAULT '' COMMENT '角色权限',
    PRIMARY KEY (`role_id`)
)ENGINE = InnoDB DEFAULT CHARSET=UTF8 COMMENT '角色信息表';

entity class:

 public class User {
    private long userId;
    private String userName;
    private String userRealname;
    private String userPassword;
    private String userEmail;
    private Role role;
    }
    public class Role {
    private int roleId;
    private String roleName;
    private String rolePermission;
    }

Dao:

 public interface UserDao {

    int insertUser(User user);

    int deleteUser(long userId);

    int updateUser(User user);

    User queryByUserId(long userId);
    }
  • 写回答

3条回答 默认 最新

  • devmiao 2016-10-22 15:46
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?
  • ¥15 乘性高斯噪声在深度学习网络中的应用
  • ¥15 运筹学排序问题中的在线排序
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛