在下有一个疑问,在使用MyBatis做orm时,是不是一定要配置如下几步啊:
实体类,实体类对应的Mapper接口,Mapper接口的xml文件,这些配置每个实体都对应一份,感觉太冗余,如果不写Mapper接口在持久层调用(要写实体类全名称和操作id)com.test.bean.User.insert也很麻烦!!!各位大神,有没有一套优秀的配置给个分享学习学习,在下感激不尽!!!
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
去这里看看,应该有你想要的东西: https://code.google.com/p/mybatis/wiki/Spring######谢谢分享######提问时请一定要正确关联提问涉及的软件,否则难有人回答######嗯嗯,好的###### 我以前整合的,你可以看看
http://git.oschina.net/wz2520020/ssb ######谢谢了###### 在Application中做如下的配置:
<!-- 配置mybatis --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="mapperLocations" value="classpath*:sqlmapper/*.xml" /> <property name="dataSource" ref="dataSource" /> </bean>
<bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate"> <constructor-arg name="sqlSessionFactory" ref="sqlSessionFactory" /> </bean>
这样配置后在classpath下建立一下sqlmapper的文件夹(和上述配置中的一样)。在里面任意建.xml的文件,里面直接写SQL语句。如下:<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.test.sqlmapper.DepInfo">
<!-- 向数据库存储DepInfo的SQL语句 -->
<insert id="save" parameterType="com.****.model.DepInfo">
<![CDATA[
insert into DepInfo (departmentId, enterNumber, departmentName, fDepartmentId, departmentDes, departmentOrder)
values (#{departmentId}, #{enterNumber}, #{departmentName}, #{fDepartmentId}, #{departmentDes}, #{departmentOrder})
]]>
</insert>
</mapper>
然后使用SqlSessionTemplate就可以了。例如按上面的例子:sqlSessionTemplate.insert("com.test.sqlmapper.DepInfo.save", depInfo); 有关SqlSessionTemplate你可以查看相关文档。 ######谢谢分享!###### xml配置
<!-- 配置事务 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource" /> </bean> <!-- SessionFactory --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <!-- 指向实体类包路径 设置此属性在mapper的xml文件当中可以不用写resultMap对象映射--> <property name="typeAliasesPackage" value="com.test.model" /> </bean> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <!-- mapper文件路径 --> <property name="basePackage" value="com.test.dao" /> </bean>Java:Mapper接口
public interface TestMapper {
@Select("select * from table_name")
public List<Model> queryAll();
@Delete("delete from table_name where id = #{id}")
public int delete(long id);
// 多个参数使用注解方式,要加是@Param,单个参数不用加
@Delete("update table_name set name = #{name} where id = #{id}")
public int update(@Param("name") String name,@Param("id") long id);
} Mapper配置文件,在TestMapper接口同目录下,名字要相同,复杂的处理可以在xml里写,不写接口注解
<mapper namespace="com.zhangxuan.test.dao.TestMapper">然后直接写service就行了,TestMapper接口不用写实现类。 ######谢谢分享!###### 推荐你看看springside中的实现 http://www.oschina.net/p/springside ######谢谢分享~!