通用资金如何使用用通用Mapper

通用Mapper-3.2.x简单实用文档_图文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
通用Mapper-3.2.x简单实用文档
阅读已结束,下载本文需要
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,方便使用
还剩10页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢关于Mybatis利用通用mapper插入有外键的数据的问题【mybatis吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:2,131贴子:
关于Mybatis利用通用mapper插入有外键的数据的问题收藏
紧急紧急,求帮助!@Testpublic void testInsert() {Patient patient = new Patient();patient.setPtid(4L);patient.setPatientname(&李雷&);patient.setSex(&男&);patient.setAge(18L);patient.setIDnumber(647893L);patient.setTelephone(L);patient.setAddress(&廊坊市安次区&);patient.setSdate(new Date());patient.setDcid(4L);patient.setDoctorname(&赵宇阳&);patient.setDepartment(&外科&);patient.setRoom(4L);patient.setBed(8L);patient.setIllness(&阿萨斯&);patient.setPrescription(&hdjk&);patient.setFee(&2580&);patientMapper2.insert(patient);}显示这个错误:Cannot add or update a child row: a foreign key constraint fails (`hospital`.`hp_patient`, CONSTRAINT `doctorname` FOREIGN KEY (`doctorname`) REFERENCES `hp_doctor` (`doctorname`) ON UPDATE CASCADE)其中的dcid和doctorname是hp_patient的外键,dcid和doctorname是hp_doctor里的字段,dcid是主键值写的都相对应该怎么解决呢?麻烦帮帮我
通用mapper的所有操作只能进行单表操作,有外键涉及到多表操作,,应该是不能使用,需要自己写插入方法
作为一只1级蠢新,我发誓,有朝一日我水到11级以后就洗心革面,重新做人,认真回帖。不要告诉我现在已经3,卧槽!什么时候5级了!
登录百度帐号推荐应用&nbsp>&nbsp
&nbsp>&nbsp
java教程 &nbsp>&nbsp
使用mybatis完成通用dao和通用service
摘要:概述:使用通用dao和通用service可以减少代码的开发。可以将常用的增删改查放到通用dao中。对不同的or框架,基本上都有自己的实现如SpringJPA的Repository就提供了常用的增删改查方法。而MyBatis借助代码生成工具也可以生成常用方法的映射这里只针对Mybatis。如果使用代码生成工具,会有一个问题:每个Mapper里面都有一些方法(增晒改查)。维护起来的话还好。只是在写service的时候会有一个问题。比如UserMapper里面有insert(Use
使用通用dao和通用service可以减少代码的开发。可以将常用的增删改查放到通用dao中。对不同的or框架,基本上都有自己的实现如SpringJPA的Repository就提供了常用的增删改查方法。而MyBatis借助代码生成工具也可以生成常用方法的映射
这里只针对Mybatis。如果使用代码生成工具,会有一个问题:每个Mapper里面都有一些方法(增晒改查)。维护起来的话还好。只是在写service的时候会有一个问题。比如UserMapper里面有insert(User user),find(Integer id),delete(Integer id)等方法,则在service中也要有这些方法的实现。假设每个Mapper有5个方法。则service也需要有5个方法的实现。如果有10个实体类。mapper可以省略(由生成工具生成),但是service有50个方法。到后期肯定不好进行维护
使用通用Mapper和Service
该通用Mapper使用了Spring-mybatis。所以没有实现类,而是直接调用xml文件中的同名方法。之所以将通用Mapper抽出来主要是为了方便些通用的service
通用接口,该接口方法的名称与使用代码生成工具的名称完全相同
package cn.liuyiyou.yishop.import java.io.Spublic interface BaseMapper&T,ID extends Serializable& { int deleteByPrimaryKey(ID id); int insert(T record); int insertSelective(T record); T selectByPrimaryKey(ID id); int updateByPrimaryKeySelective(T record); int updateByPrimaryKeyWithBLOBs(T record); int updateByPrimaryKey(T record);}
通用service接口。为了方便,名字和通用Mapper同名,其实更倾向于命名add。edit,find这类的命名,显得更加面向对象
package cn.liuyiyou.yishop.import java.io.Spublic interface BaseService&T,ID extends Serializable& { void setBaseMapper(); int deleteByPrimaryKey(ID id); int insert(T record); int insertSelective(T record); T selectByPrimaryKey(ID id); int updateByPrimaryKeySelective(T record); int updateByPrimaryKeyWithBLOBs(T record); int updateByPrimaryKey(T record);}
通用service实现。也很简单。就是调用通用mapper里面的方法即可
package cn.liuyiyou.yishop.service.import java.io.Simport cn.liuyiyou.yishop.mapper.BaseMimport cn.liuyiyou.yishop.service.BaseSpublic abstractclass AbstractService&T, ID extends Serializable& implements BaseService&T, ID& { private BaseMapper&T, ID& baseM public void setBaseMapper(BaseMapper&T, ID& baseMapper) { this.baseMapper = baseM } @Override public int deleteByPrimaryKey(ID id) { return baseMapper.deleteByPrimaryKey(id); } @Override public int insertSelective(T record) { return baseMapper.insertSelective(record); } @Override public T selectByPrimaryKey(ID id) { return baseMapper.selectByPrimaryKey(id); } @Override public int updateByPrimaryKeySelective(T record) { return baseMapper.updateByPrimaryKey(record); } @Override public int updateByPrimaryKeyWithBLOBs(T record) { return baseMapper.updateByPrimaryKeyWithBLOBs(record); } @Override public int updateByPrimaryKey(T record) { return baseMapper.updateByPrimaryKey(record); } @Override public int insert(T record) { return baseMapper.insert(record); }}
具体的Mapper写法:
package cn.liuyiyou.yishop.import java.util.Limport org.springframework.stereotype.Rimport cn.liuyiyou.yishop.domain.ProductC@Repositorypublic interface ProductCategoryMapper extends BaseMapper&ProductCategory, Long&{ /** * 通过父id得到类目列表 * @param praentId * @return */ List&ProductCategory& selectByParent(Long parent);}
具体的Servicd
package cn.liuyiyou.yishop.service.import java.util.HashMimport java.util.Mimport org.springframework.beans.factory.annotation.Aimport org.springframework.stereotype.Simport cn.liuyiyou.yishop.domain.Ad;import cn.liuyiyou.yishop.domain.Pimport cn.liuyiyou.yishop.mapper.AdMimport cn.liuyiyou.yishop.mapper.ProductMimport cn.liuyiyou.yishop.service.ProductS@Servicepublic class ProductServiceImpl extends AbstractService&Product,Long& implements ProductService { @Autowired private ProductMapper productM @Autowired private AdMapper adM //这句必须要加上。不然会报空指针异常,因为在实际掉用的时候不是BaseMapper调用,而是这个productMapper @Autowired public void setBaseMapper(){ super.setBaseMapper(productMapper); } @Override public Map&String,Object& testTwo() { Product product = productMapper.selectByPrimaryKey(1l); Ad ad = adMapper.selectByPrimaryKey(1l); Map&String,Object& map = new HashMap&String,Object&(); map.put(&product&, product); map.put(&ad&, ad); }}
http://liuyiyou.cn//base-dao-service/ –这个好像有提到好坏
http://git.oschina.net/free/Mapper/blob/master/UseMapperInSpring4.md –这个看了一下,但是没有进行试验,不知道好坏与否
以上是的内容,更多
的内容,请您使用右上方搜索功能获取相关信息。
若你要投稿、删除文章请联系邮箱:zixun-group@service.aliyun.com,工作人员会在五个工作日内给你回复。
云服务器 ECS
可弹性伸缩、安全稳定、简单易用
&40.8元/月起
预测未发生的攻击
&24元/月起
为您提供0门槛上云实践机会
你可能还喜欢
你可能感兴趣
阿里云教程中心为您免费提供
使用mybatis完成通用dao和通用service相关信息,包括
的信息,所有使用mybatis完成通用dao和通用service相关内容均不代表阿里云的意见!投稿删除文章请联系邮箱:zixun-group@service.aliyun.com,工作人员会在五个工作日内答复
售前咨询热线
服务与支持
账号与支持
关注阿里云
International一、排序错误代码:example.orderBy(BaseEntity.Field.GMTUpdate + " desc");正确方式:一是:通过注解
@OrderBy(value = "DESC")二是:example.setOrderByClause("GMT_UPDATE DESC");注意此处是列名称,不是属性名。二、处理oracle的null异常&?xml version="1.0" encoding="UTF-8"?&&!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"&&configuration&&settings&&setting name="cacheEnabled" value="false"/&&!--解决插入null的时候报错问题--&&setting name="jdbcTypeForNull" value="NULL"/&&/settings&&/configuration&三、mapper的selectOne返回值可能是null,获取的结果应做null判定。四public interface SequenceMapper{@Select("select SEQ_${tableName}.nextval from dual")int getSequence(@Param("tableName") String tableName);}
阅读(...) 评论()Mybatis通用Mapper 3.0.0发布
查看: 517|
评论: 0|原作者: oschina|来自: oschina
摘要: MyBatis通用Mapper3极其方便的使用Mybatis单表的各种通用方法Mapper 3.0.0更新日志:将EntityMapper和SqlMapper移出,现在是独立项目EntityMapper将MapperT全部接口方法拆分为独立接口,方便选择集成增加MySqlMapper ...
MyBatis通用Mapper3极其方便的使用Mybatis单表的各种通用方法Mapper 3.0.0更新日志:详细变化请看Mapper2资深用户请看如果你使用Maven,只需要添加如下依赖:12345&dependency&&&&&&groupId&com.github.abel533&/groupId&&&&&&artifactId&mapper&/artifactId&&&&&&version&3.0.0&/version&&/dependency&如果你想引入Jar包,你可以从下面的地址下载:由于通用Mapper依赖JPA,所以还需要下载persistence-api-1.0.jar:Mapper2.x升级注意事项:如果你只用到了Mapper&T&接口,那么可以直接升级到3.0.0版本。如果你用到了EntityMapper,你还需要EntityMapper:如果是用maven,可以直接添加:12345&dependency&&&&&&groupId&com.github.abel533&/groupId&&&&&&artifactId&entitymapper&/artifactId&&&&&&version&1.0.0&/version&&/dependency&如果你用到了SqlMapper,你可以加入上面的EntityMapper,或者因为SqlMapper本身就一个类,你可以把这个类加到自己项目中。Mapper3以后会持续维护更新,添加一些针对性的通用方法。Mapper2.x版本仍然会维护一段时间,只解决bug,不会有新内容。EntityMapper项目只是为了方便Mapper2升级到Mapper3时可以使用EntityMapper和SqlMapper,以后不会维护。SqlMapper因为只有一个类,所以有时间的时候还会进行完善。Mapper3完整接口列表:Mapper3文档:
上一篇:下一篇:
快毕业了,没工作经验,
找份工作好难啊?
赶紧去人才芯片公司磨练吧!!

我要回帖

更多关于 如何使用通用mapper 的文章

 

随机推荐