4.3 用户信息管理模块
环境搭建时,com.gssm.entity中建立User.java包,并对数据库进行了连接。
下面创建sql映射文件,
<mapper namespace="com.gssm.entity.User">
<!-- 实体类与数据库映射字段部分 start -->
配置resultMap属性,进行表字段类与实体类的映射。
<resultMap id="ResultMapUser" type="com.gssm.entity.User">
<result property="id" column="id"/>
……
</resultMap>
<!-- 实体类与数据库映射字段部分 end -->
下面声明数据库字段,用于后续的MyBatis的动态查询。
<!-- 声明数据库字段 -->
<sql id="User_field">
<!--判断是否是最后一个元素,如果不是最后一个添加,-->
id,
……
</sql>
<!-- 实体类属性 -->
<sql id="User_insert">
<!--判断是否是最后一个元素,如果不是最后一个添加,-->
#{id},
#{loginname},
……
</sql>
#{id}告知MyBatis创建一个预处理语句参数,可以节省时间以及防止SQL注入,提升安全性。
下面就可以进行添加。
<insert id="insert" parameterType="com.gssm.entity.User" useGeneratedKeys="true" keyProperty="id">
INSERT INTO t_user (
<include refid="User_field" />
) VALUES (
<include refid="User_insert" />
)
</insert>
其中用户的id或者说主键为自动生成。<include refid =” ”>则是为了使sql语句较为简洁。
删除则是直接根据用户id即主键删除。
<delete id="delete" parameterType="java.lang.String">
delete from t_user where id=#{id}
</delete>
查询同样相同。
<select id="load" resultMap="ResultMapUser" parameterType="java.lang.String">
select <include refid="User_field" />
from t_user
where id=#{id}
</select>
下面在com.gssm.dao中建立BaseDaoImpl.java。
public int insert(T entity) {
return this.getSqlSession().insert(getClz().getName()+".insert",entity);
}
写UserController.java,连接页面请求和服务层。
@RequestMapping(value = "/list.action")
public String list(User user, Model model, HttpServletRequest request, HttpServletResponse response, HttpSession session) {
Pager<User> pagers = userDao.findByEntity(user);
model.addAttribute("pagers", pagers);
return "admin/user/user_list";
最后编写jsp页面调用。
用户信息后台管理模块对用户信息进行管理,包括删除,添加查询等操作,界面如图5.3所示。