引言 目前,MyBatis的使用越来越普遍,也有一些公司使用Hibernate.使用MyBatis需要我们自己书写SQL语句,面对各种复杂的场景,SQL传递多参是很普遍的.如何传递多参应对不同的场景也是一种学问.下面总结了4种传递多参的方法. Method1. 顺序传参 1 public User selectUserMessage(String name, int deptId); 2 3 <select id="selectUserMessage" resultMap=&qu…
1.接口 public interface MemberMapper { public boolean insertMember(Members member); public Members selectMember(Integer id, String name); } 2.配置文件 不能这样写,通过查看mybatis源码后发现,单个参数mybatis不会做处理,多个参数会将传递过来的参数封装成一个map集合,key是从param1开始一直到paramN,而value是我们传递过来的值 以下…
使用MyBatis开发Dao,通常有两个方法,即原始Dao开发方法和Mapper动态代理开发方法. 原始Dao开发方法需要程序员编写Dao接口和Dao实现类,此方式开发Dao,存在以下问题: Dao方法体存在重复代码:通过SqlSessionFactory创建SqlSession,调用SqlSession的数据库操作方法 调用sqlSession的数据库操作方法需要指定statement的id,这里存在硬编码,不便于开发维护. 所以建议使用mapper动态代理方式来开发dao. Mapper接口…
一.单个参数: public List<XXBean> getXXBeanList(String xxCode); <select id="getXXXBeanList" parameterType="java.lang.String" resultType="XXBean"> select t.* from tableName t where t.id= #{id} </select> 其中方法名和ID一致,…
当在查询的时候需要传入多个参数的时候该怎么办呢: 1,封装成一个Model对象,底层HashMap还是一个 User user=new User(); user.setUserName("zhangsan"); user.setPassword("123456"); queryUserByuserNameAndPass(user);//为返回值类型为User <select id="queryUserByuserNameAndPass" r…
由于公司要求,最近从.net向java 转,然后过程中遇到各种奇葩问题,特在此随记一番. 场景:一个方法中有两个参数,一个List的集合,一个int 类型的参数,最初我在xml的sql参数,无论定义成List还是int都报错,其实仔细一想就能明白,接口方法中定义了两个类型的参数,所以你XML中的参数类型无论定义成什么都是不对的. 原始写法: //========================这个例子是原始错误写法的例子===========Start void batchUpdateUrget…
首先在lib下导入: 与打印日志信息有关的架包 log4j-1.2.16.jar mybatis架包:mybatis-3.1.1.jar 连接数据库的架包:mysql-connector-java-5.1.6-bin.jar 建立User封装类,这儿只写属性,不写setter和getter,tostring方法 private int id; private String name; private int age; 在src目录下建立db.properties文件,连接数据库的属性和值 dri…
首先创建一个数据库 CREATE TABLE user (   id varchar(32) CHARACTER SET utf8 NOT NULL,   name varchar(50) CHARACTER SET utf8 DEFAULT NULL ,   dflag char(1) CHARACTER SET utf8 DEFAULT NULL ,   PRIMARY KEY (`id`) ) jdbc.properties配置 mysql.driver=com.mysql.jdbc.Dr…
Mybatis提供了4种传递多个参数的方法: 1 Map sql语句 接口 调用方法 这个方法虽然简单易用,但是存在一个弊端:Map存储的元素是键值对,可读性不好. 2 注解 使用MyBatis的参数注解@Param(org.apache.ibatis.annotations.Param). 接口 sql语句 #{roleName}代表rolename参数,可读性较好.如果参数过多,那么使用注解方式的可读性就会不好.   3 #{order} 代码与2类似,只不过接口里面没有@Param注解,#…
Dao层传递参数到mapping.xml文件的几种方式:(Mybatis传值总结) 第一种:传递单个参数 Dao层Code片段: /** * 根据articleId查询XXXX详情. * * @param articleId * @return {@link CmsProductArticle} */ public CmsProductArticle getCmsProductArticleByArticleId(Long articleId); Mapping片段: <select id=&quo…