ssm要记住的一些小知识点

处理乱码问题

我们可以在web.xml里面加上spring自带的乱码过滤器来处理乱码,

 <filter>
        <filter-name>encodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>utf-8</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>encodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

当然也可以自定义filter来进行过滤

 

需要注意的一点是,对于第一种方法的url-pattern要注意/  和  /*  的区别,/不会过滤jsp页面,而/*可以,所以推荐使用/*.

 

 

lib导包问题

 在ssm中我们创建的工程在pom.xml里面一般都是通过pom的方式进行打包的,如下

 

 这种方式需要我们每次创建项目,通过maven导入依赖的时候需要为工程创建lib目录将所需要的包导进来才行。不进行这一步工程一般无法正常启动

 

 

 Autowired和Resource的用法区别

一般AutoWiredQualifier一起使用,AutoWired是只根据类型进行匹配,当同类型多个的时候会选择最后一个此时可以使用Qualifier再按照名字进行进一步的匹配。

Resource怎是根据名字来进行匹配,不显示指明名字就根据属性名字来找。

 

 parameterType 和resultType

parameterType 是用来设置mapper的传入参数类型,当在只有sql语句中不含有动态参数就可以不使用,此时可以根据注入的参数自行确定传入参数的类型。(基本类型和自定义类类型都可以省略只要不写动态sql语句),当传入的参数只是实体类部分属性,为了方便可以使用map进行注入

resultType是方法的返回类型,一般为基本类型和引用类型。resultType根据sql返回值来决定需不需要写,一般增删改没有返回值不需要写resultType,查询一般都要写上。当数据库字段和实体类属性名不完全一致可以使用resultMap,对于集合和关联也要用到resultMao

 

resultMap的使用https://zhuanlan.zhihu.com/p/79153088

别名

MyBatis 已经为 Java 常见类型默认指定了别名,可以直接使用。因为有一些基本数据类型和包装类型的名称一样(例如基本数据类型 byte 和包装类型 java.lang.Byte),

所以在基本的数据类型前面加了下划线 “_” 来以此区分(byte 别名就是_byte,java.lang.Byte 别名就是 byte)。对于基本类型,传入的时候可以使用基本类型或者别名,别名是_加上基本类型,对于包装类型则是完整路径的包装类型和

对应别名为基本类型,因此我们一般可以传入基本类型就行,因为基本类型本身是基本类型的原型也是包装类型的别名。

 C3p0导入数据库配置文件

 

 

 

 

 很奇怪,配置文件的名字必须带有jdbc.否则就报错,要保证配置文件的名字不能乱起。

@param注解问题

当只有一个参数时该注解可以不用写,mapper可以认为传入的参数就是方法需要的唯一一个参数,但是当方法有多个参数的时候

mapper无法知道注入的属性对应方法的哪一个参数,这个时候@param("属性名")指定方法的属性名在mapper里面的映射,就可以保证mapper(SQL语句)知道传入的参数对应方法的哪一个参数。当然参数多的时候还可以使用map存储或者封装在JavaBean里面。可以

看一下这篇博客:

mybatis传多个参数(不使用@param注解情况和使用@param注解的情况)_张想成博客-CSDN博客

posted @ 2021-04-12 21:17  你的雷哥  阅读(176)  评论(0编辑  收藏  举报