这段时间用了一下Spring+Mybatis,总结一下容易出错的地方
1、在Spring中需要配置的是需要扫描的包<context:component-scan base-package="com.youzer"/>
2、引入的xml配置文件<import resource="classpath:spring/spring-mybatis.xml" />
3、如果用到了代理<aop:aspectj-autoproxy proxy-target-class="true" />,proxy-target-class默认"false",更改为"ture"使用CGLib动态代理
下面就是spring-mybatis.xml的配置
1、首先我们可以自动获取数据库的信息
<prop key="driverClassName">${jdbc.driverClassName}</prop>
<prop key="url">${order.jdbc.url}</prop>
<prop key="password">${order.jdbc.password}</prop>
<prop key="username">${order.jdbc.username}</prop>
2、其他的配置不说了,百度很多,说一下数据库加密<prop key="connectionProperties">config.decrypt=true</prop>,当为true时,为开启加密状态
3、配置sqlSession
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="configLocation"
value="classpath:mybatis/mybatis-config-merchant.xml" />
<property name="dataSource" ref="merchantDataSource" />
</bean>
<bean id="sessionTemplate" class="org.mybatis.spring.SqlSessionTemplate"
destroy-method="close">
<constructor-arg index="0" ref="sqlSessionFactory" />
</bean>
接下来是mybatis-config-merchant.xml
1、configuration>
<typeAliases>
<typeAlias alias="Admin" type="com.youzer.facade.system.entity.Admin"/>
</typeAliases>
<mappers>
<mapper resource="mybatis/mapper/system/Admin.Mapper.xml" />
</mappers>
</configuration>
重点在于,Mapper的地址和实体类的引用,注意别名
2、配置mapper
<mapper namespace="com.youzer.core.system.dao.impl.AdminDaoImpl">
<sql id="table"> admin </sql>
<resultMap id="beanMap" type="Admin">
<id column="id" property="id" />
<result column="username" property="username" />
<result column="password" property="password" />
<result column="updateTime" property="updateTime" />
<result column="aType" property="aType" />
<result column="merchantId" property="merchantId" />
<result column="name" property="name" />
<result column="phoneNumber" property="phoneNumber" />
<result column="sex" property="sex" />
<result column="payPass" property="payPass" />
<result column="paySalt" property="paySalt" />
</resultMap>
<select id="listBy" parameterType="java.util.Map" resultMap="beanMap">
select * from <include refid="table" /> where merchantId = #{merchantId}
</select>
<update id="update">
update <include refid="table" /> set payPass=#{payPass},paySalt=#{paySalt} where merchantId=#{merchantId}
</update>
</mapper>
这样就可以连接到DAO层了
而且sql使用了动态获取