1、在ibatis中,parameterClass的类型大都是:string,int/对象/hashmap resultclass/resultMap的类型大都是:对象/hashmap 当parameterClass为string,int时,可用#value#表示或直接用传入的值名表示。
2、传递数组 要传递数组到方法里,只要指明传入的参数是一个数组即可。
3、你把数组拆解然后放在map里面,把所有的参数都往map里面放。
4、数组作为参数是按地址传递的 数组名就是数组的首地址。因此在数组名作函数参数时所进行的传送只是地址的传送, 也就是说把实参数组的首地址赋予形参数组名。形参数组名取得该首地址之后,也就等于有了实在的数组。
5、不过在函数中访问时需要做对应的转换。2 动态二维数组,即 char ** p;在p上分配的二维数组,本质上为二维指针。 可以直接以char **类型参数传入。
在ibatis中,parameterClass的类型大都是:string,int/对象/hashmap resultclass/resultMap的类型大都是:对象/hashmap 当parameterClass为string,int时,可用#value#表示或直接用传入的值名表示。
至于其中的 NULL,不过是指定参数为 null 时的默认值,显然,写成 #passwd:VARCHAR# 就行了,后面的 NULL 是多余的。
在SQL语句的节点中,设置parameterClass = java.util.Map即可。在Action中,把参数封装到Map中,然后传到ibatis配置文件中来。
其中,等号左边是参数名,右边是对应的参数的值,值的类型有多种,典型的如数字和 字符串. 参数文件就是存储这些参数的地方,oracle在启动时会从参数文件中读取相关的配置。
/insert 这是一个取map 中的数据的ibatis sql。
parameterClass是你要传进来的参数的类型(通常可以是Map对象,也可以是基础数据类型) resultMap也是你要返回的值类型(一般是对象,参考例子),从命名上就可以发现传进来的是一个Map对象,如果要用的话,要先定义。
当parameterClass为string,int时,可用#value#表示或直接用传入的值名表示。当parameterClass/resultMap的类型是对象时,用#属性#表示。程序会调用JAVABEAN的getter方法,进行获取属性值。
使用方法就更简单了,拼好sql语句后,调用 sqlMapper.queryForList(sqlQuery, sql)就得到了查询结果,当然这个结果为List,并且list中的元素为Map类型,循环List,就得到查询明细。
由于MapJoin没有Reduce,所以由Map直接输出结果文件,有多少个Map Task,就有多少个结果文件。distinct一般和group by同时出现。
1、获取SqlSession 返回SqlSession的实现类Default对象,包含了Executor和Configuration;会有拦截器链(interceptChain.pluginAll(executor))对Executor进行插入修饰。
2、可以考虑用union all来实现批量插入。
3、mybatis执行过程SqlSession设计采用的是门面模式---方便调用。这里主要讲述一下mybatis执行器1mybatis的Executor体系CachingExecutor类中是MyBatis关于二级缓存相关的逻辑。