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

来源:互联网 发布:软件实施人员基本素质 编辑:程序博客网 时间:2024/06/05 02:22

嗯,前面几天太忙。明天又要去加班。苦逼的程序员。话不多说,开始!
今日目标: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的添加,最大限度完成登录页面

0 0
原创粉丝点击