SSM框架进阶理解

引言

昨天我们分析了简单的SSM框架的启动执行流程,今天我们再来看一看SSM稍稍深一些的基于数据库的理解,文件结构和昨天一样,只是加了一些更高级的数据库操作。
首先看mapper文件,后面主要对此文件进行介绍。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.zs.Dao.UserDao" >
    <select id="SAll" resultType="com.zs.Bean.User" >
        select * from users;
    </select>
    <insert id="Add" parameterType="com.zs.Bean.User">
        insert into users(id,email,username) value (#{id},#{email},#{username})
    </insert>
    <select id="Search" resultType="com.zs.Bean.User" parameterType="java.lang.String">
        select * from users where id = #{id}
    </select>
    <update id="Upd" parameterType="com.zs.Bean.User">
        update users set username = #{username},email = #{email} where id = #{id}
    </update>
    <delete id="Del" parameterType="String">
        delete from users where id = #{id}
    </delete>
    <select id="SearL" parameterType="String" resultType="com.zs.Bean.User">
        select * from users where username like CONCAT('%',#{username},'%')
    </select>
</mapper>

全查询

全查询问题我们昨天已经看过了,通过mapper文件对数据库接口进行实现(见第一个Select子标签),在Service层中完成业务逻辑的调用,在ServiceImp层中实现业务逻辑的方法。对于后端UserList数据的返回与解析,可能还是有人不理解,这里我们再看一遍前端User-list页面,里面使用了c标签,c标签是类似于一种能够在前端界面执行的轻量级js库,它封装了一些我们常用的操作,前端页面中,C标签逐个取出数据并显示在前端界面中。

记录插入

看到第二个标签,insert标签,里面介绍了对于数据插入Sql语言的使用,此处仅插入一个记录的三个属性。在Service层中,提供了调用该方法的业务接口并实现了方法实现。因为Mybatis框架对于add方法并不提供ResultType类型,所以暂定此处返回值为空,但是在相关的搜索中,Mybatis可以通过其他方法返回受影响的行数,后面再更。这里先默认不向后传参,所以查询以后并不知道是否插入成功。为了保证用户交互体验,故在插入操作以后,重新定向到全查询界面,但是我始终觉得这种方法并不人性化且加大了数据库的负载。

特定条件查询

看到第三个标签,这里我们使用id进行查询,在mapper文件中实现Dao层方法的实例化,大家可以看到看到标签中sql语句的设计。特定条件查询作为修改操作的第一步,即要确保修改操作的对象一定存在。这种特定条件查询的结果将会返回到user-update界面中进行显示。因为此次修改不允许用户修改自己的ID,所以ID属性将不能选择,所以在相应位置的input框中增加disabled属性确保该对象不可被选中及修改。

修改记录

修改操作与上一个查询联合实现系统的修改功能,修改之前确保系统中有相关的对象,然后进行修改,将修改后的值填充到数据库中

删除记录

删除作为最简单的功能,这里我们依然默认无返回值,所以说删除功能执行完以后紧接着做全查询功能查看是否删除成功,这里远离不再过多赘述。

模糊查询

模糊查询功能主要难题在于语法问题,所以着重于语法问题解决,
具体语法可见上面的mapper文件。
至此,简单的语法问题已经完成,我们先不关注前端交互以及设计的复杂性,仅针对原理进行剖析。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值