2017.05.06 记雏鹰博客系统开工第4天。

本文详细介绍了MyBatis框架的搭建过程,包括依赖配置、连接池设置、类和包的创建等步骤,并解决了配置过程中遇到的几个常见问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

嗯,前面几天太忙。明天又要去加班。苦逼的程序员。话不多说,开始!
今日目标:Mybatis搭建。
步骤一:在pom.xml中添加以下代码:

<mysql.version>5.1.38</mysql.version>
<mybatis.vision>3.2.8</mybatis.vision>
<mybatis-spring.version>1.2.2</mybatis-spring.version>

<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>${mybatis.version}</version>
</dependency>

<!-- 添加mybatis/spring整合包依赖 -->
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis-spring</artifactId>
    <version>${mybatis-spring.version}}</version>
</dependency>
<!--DataBase connector-->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>${mysql.version}</version>
</dependency>

步骤二:在resources/sping文件夹下,添加spring-config-mybatis.xml文件如下,添加完成后添加缺失的各目录及文件,此处仅以spring-config-mybatis.xml为例,详见雏鹰开发附件2– Mybatis相关xml配置。

spring-config-mybatis.xml
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="location" value="classpath:properties/jdbc.properties"/>
</bean>

<!-- 配置mybatis -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <!--要映射类的包路径,如果使用了这种方式,则configLocation中不必再进行声明-->
    <property name="typeAliasesPackage" value="com.simon.pojo"/>
    <property name="configLocation" value="classpath:mybatis/mybatis-config.xml"/>
    <!-- mapper扫描 -->
    <property name="mapperLocations" value="classpath*:mybatis/mapper/*.xml"/>
</bean>

<bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
    <constructor-arg ref="sqlSessionFactory" index="0"/>
</bean>

步骤三:加入连接池相关配置:

pom.xml:
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.0.11</version>
</dependency>

步骤四:创建User相关类和包,测试Mybatis是否配置成功:
项目结构
问题1:发现了一个小问题,使用@Component后再用@Autowired找不到类,经过排查,发现Spring中没有配置扫描器,于是在Spring-config.xml中做如下更改后,问题解决:

<!-- 导入外部的properties文件 -->
<context:property-placeholder location="classpath:properties/jdbc.properties"/>

<!-- 启动组件扫描,排除@Controller组件,该组件由SpringMVC配置文件扫描 -->
<context:component-scan base-package="com.simon">
    <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>

问题2:java.lang.IllegalArgumentException: Property ‘dataSource’ is required,呐,这个问题就很明显了,粗心咯,代码中少加一句话。在spring-config-mybatis.xml中更改以下语句:

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="typeAliasesPackage" value="com.simon.pojo"/><!--要映射类的包路径,如果使用了这种方式,则configLocation中不必再进行声明-->
    <property name="configLocation" value="classpath:mybatis/mybatis-config.xml"/>
    <!-- mapper扫描 -->
    <property name="mapperLocations" value="classpath*:mybatis/mapper/*.xml"/>
</bean>
改为
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="typeAliasesPackage" value="com.simon.pojo"/><!--要映射类的包路径,如果使用了这种方式,则configLocation中不必再进行声明-->
    <property name="configLocation" value="classpath:mybatis/mybatis-config.xml"/>
    <!-- mapper扫描 -->
    <property name="mapperLocations" value="classpath*:mybatis/mapper/*.xml"/>
    **<property name="dataSource" ref="dataSource_blog"/>**
</bean>

问题3:数据库中有数据,而查询的时候却有部分数据是空,为什么呢。经网上查询,原来Mybatis对下划线是不太支持的,只能转为驼峰,需要在mybatis-config.xml中加入以下代码,即可:
问题截图:
问题截图

<!-- 使用驼峰命名法转换字段。 -->
<setting name="mapUnderscoreToCamelCase" value="true"/>

问题4:乱码!!!!!在spring-mvc.xml中加入如下代码即可解决:
问题截图:问题截图

<mvc:annotation-driven>
    <mvc:message-converters>
        <bean class="org.springframework.http.converter.StringHttpMessageConverter">
            <property name="supportedMediaTypes">
                <list>
                    <value>application/json;charset=UTF-8</value>
                </list>
            </property>
        </bean>
    </mvc:message-converters>
</mvc:annotation-driven>

测试结果:
测试结果

总结:Mybatis框架的搭建,比我想象中的难,这次竟用了近三个小时,也许可能是我中间不专心的缘故吧。总之还算顺利,动手能力仍需加强啊。
明日目标:Ecache和log4j的添加,最大限度完成登录页面

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值