基于maven的spring项目实现登录注册(SSM)

本文记录了一个使用Spring、SpringMVC和MyBatis(SSM)实现登录注册功能的项目过程。作者遇到sqlsessionFactory无法创建的问题,通过删除特定配置并扫描mapper接口解决了问题。项目流程包括:准备数据库驱动、配置spring-context.xml、创建实体类、编写DAO和Service层,以及前后端数据封装。最后强调了GET和POST请求的区别。

先前参考这位大佬的文章写项目出了很多问题,经过不断修改之后终于项目得以平稳运行了。

以下是我的踩坑记录以及对应的de解决方案(不过有一个问题是解决了但是我不懂深层次理由,对此有理解的友友希望可以帮我解答。)

首先上出现最多最严重以及我没理解报错原理的一个问题。

大概就是我已经定义了sqlsessionFactory的bean,但项目无法识别出来无法创建sqlsessionFactory对象。

解决的方案仅仅是删掉以下代码,大家可以对比一下,上面是正确的,下面是最初我错误的那一版。

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">

        <!-- 引用上面已经配置好的数据库连接池 -->
        <property name="dataSource" ref="dataSource" />
    </bean>

    <!-- 配置mapper接口的扫描器,将Mapper接口的实现类自动注入到IoC容器中 实现类Bean的名称默认为接口类名的首字母小写 -->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">

        <!-- basePackage属性指定自动扫描mapper接口所在的包 -->
        <property name="basePackage" value="com.test.dao"/>

    </bean>



<!--上面正确,下面的是错的-->

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean" >
        <property name="configLocation" value="classpath:mybatis/config.xml" />
        <property name="dataSource" ref="dataSource" />
        <property name="mapperLocations" >
            <list>
                <value>classpath*:mybatis/mapper-user.xml</value>
            </list>
        </property>
    </bean>

 <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">

        <!-- 引用上面已经配置好的数据库连接池 -->
        <property name="dataSource" ref="dataSource" />
    </bean>

    <!-- 配置mapper接口的扫描器,将Mapper接口的实现类自动注入到IoC容器中 实现类Bean的名称默认为接口类名的首字母小写 -->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">

        <!-- basePackage属性指定自动扫描mapper接口所在的包 -->
        <property name="basePackage" value="com.test.dao"/>

    </bean>

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean" >
    <property name="configLocation" value="classpath:mybatis/config.xml" />
    <property name="dataSource" ref="dataSource" />
    <property name="mapperLocations" value="classpath*:mybatis/mapper-user.xml" >
    </property>
</bean>

不一致的部分是两版不同,初版是通过mapper-user.xml文件加载SQL语句,而第二版是存在一个userMapper的接口类来加载SQL语句。让人在意的是标了红色不一致的这行代码。

查了一下说法是:

 <property name="configLocation" value="classpath:mybatis-config.xml"/>

单独新建一个mybatis-config.xml文件,然后依赖注入Spring容器里

spring容器里引入mybatis-config,mybatis-config里有Mapper映射文件地址就直接获取了。

但我运行的时候出现了严重的问题

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值