SSM-遇见的一些小坑(一)-mapper的问题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hold_on_/article/details/89342106

mybatis实现Dao有两种方法:一种是正常的开发Dao层,另一种是mapper动态代理的方式。

在通过mapper代理的方式进行开发时,要注意mybatis.xml的namespace指向的是Dao的接口类,注意是接口类的路径,不是接口类所在文件的路径(也就是说带上类就行了),其次这个mapper标签中的属性的id指向的是类中的方法,带参数的一定要带上parameterType属性,例如这样:

<?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.Dao.userDao.addUserDao">

    <insert id="addUser" parameterType="user">
        insert into user(username,password) values(#{userName},#{password})
    </insert>


</mapper>

其次是Spring-mybatis.xml文件,首先找到一个class为

org.mybatis.spring.SqlSessionFactoryBean的bean,然后在这个bean中找到一个属性名为:
name="mapperLocations"的标签,然后添加一个value,(这里有一点要注意,我在开始的时候把mapper.xml放到源码中的,但是就是扫描不到mapper.xml,然后把它移到resources中就好了),例如这样:
 <!-- 配置SqlSessionFactory对象 -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <!-- 注入数据库连接池 -->
        <property name="dataSource" ref="dataSource"/>
        <!-- 扫描model包 使用别名 -->
        <property name="typeAliasesPackage" value="com.Model"/>
        <!-- 扫描sql配置文件:mapper需要的xml文件 -->
        <property name="mapperLocations" value="classpath:mapper/mapper.xml"/>
    </bean>

在这里还需要知道:sqlSession中封装了对数据库的操作(增删改查了什么的),而sqlSession又是由sqlSessionFactory创建的,sqlSessionFactory又是由sqlSessionFactoryBuilder进行创建的。

猜你喜欢

转载自blog.csdn.net/hold_on_/article/details/89342106