刚刚自学了ibatis,还不是很精通,自己写了一些小的例子,用spring整合ibatis用配置文件和annotation的区别,
首先,用配置文件
这是spring的配置文件beans.xml
<context:annotation-config />
<context:component-scan base-package="edu.hue.jk" />
<bean
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<value>classpath:jdbc.properties</value>
</property>
</bean>
<bean id="dataSource" destroy-method="close" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName"
value="${jdbc.driverClassName}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</bean>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<!-- <property name="configLocation" value=""/> -->
<!--<property name="mapperLocations" value="src/UserMapper.xml"/>-->
</bean>
<bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
<property name="mapperInterface" value="edu.hue.jk.dao.UserMapper"/>
<property name="sqlSessionFactory" ref="sqlSessionFactory"/>
</bean>
ibatis的配置文件:
<mapper namespace="edu.hue.jk.dao.UserMapper">
<!-- <insert id="insertUser" parameterType="edu.hue.jk.model.User"> -->
<!-- insert into user(username,password,sex) values(#{username},#{password},#{sex}) -->
<!-- </insert> -->
<!-- 当使用该Mybatis与Spring整合的时候,该文件必须和相应的Mapper接口文件同名,并在同一路径下 -->
<select id="selectUser" parameterType="string" resultType="edu.hue.jk.model.User">
select * from user where username=#{username}
</select>
<!-- <update id="update" parameterType="edu.hue.jk.model.User"> -->
<!-- update visitor -->
<!-- set username = -->
<!-- #{username},password=#{password} -->
<!-- where id = #{id} -->
<!-- </update> -->
<delete id="deleteUser" parameterType="string">
delete from user where id = #{id}
</delete>
<select id="selectUsers" resultType="edu.hue.jk.model.User">
select * from user
</select>
</mapper>
crud的例子我一样写了一个,去掉注释就可以直接使用,数据库字段user(id ,username,password,sex),id为自动增长,
将ibatis的配置文件与dao接口文件放在相同目录下,不然系统会找不到ibatis的配置文件,这是与hibernate不用的地方,ibatis不需要实现类,我觉得这大大的方便了编程人员,当然也可以有实现类,具体很hibernate差不多,这里就不具体说了,parameterType 表示的是参数的类型,resultType表示的是返回值类型,