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

xiaoxiao2021-02-28  63

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

转载请注明原文地址: https://www.6miu.com/read-66266.html

最新回复(0)