2015年8月9日
摘要:
前两篇博文介绍的都是单表映射,而实际上很多时候我们需要用到较复杂的映射。今天学会的association的用法,就是一例,现写出来和大家分享(为简洁起见,ant工程中各文件、目录的布局,以及其它与前面的例子重复的内容,将不再赘述。以后博文亦将如此)。假设每个学生都有一名指导老师,本示例的任务就是查询...
阅读全文
posted @ 2015-08-09 10:50
duanxz
阅读(2201)
推荐(0)
摘要:
处理has-one关系需要用到association元素,而处理hasmany关系则需要用到collection元素。例如本例中,假设一 名教师可同时指导多名学生,下面就来介绍如何使用collection元素来实现这种映射,具体的任务是查询出教师及其指导的多个学生的信息(本示例源代 码下载页面:ht...
阅读全文
posted @ 2015-08-09 10:49
duanxz
阅读(641)
推荐(0)
摘要:
一、嵌套的resultMap这 种方法本质上就是上篇博文介绍的方法,只是把教师实体映射从association元素中提取出来,用一个resultMap元素表示。然后 association元素再引用这个resultMap元素。修改上篇博文示例的StudentMapper.xml如下:在 这里,为了让...
阅读全文
posted @ 2015-08-09 10:49
duanxz
阅读(47241)
推荐(1)
摘要:
Xhtml代码测试代码:Java代码/***测试返回HashMap*/@SuppressWarnings("unchecked")@TestpublicvoidtestSelectBlogRetHashMap(){SqlSessionsession=sqlSessionFactory.openSes...
阅读全文
posted @ 2015-08-09 10:46
duanxz
阅读(14041)
推荐(0)
2015年8月7日
摘要:
MyBatis中批量插入 方法一: 方法二: 可以考虑用union all来实现批量插入。例如:insert into XX_TABLE(XX,XX,XX)select 'xx','xx','xx' union all select 'xx','xx','xx' union all select '
阅读全文
posted @ 2015-08-07 15:37
duanxz
阅读(14178)
推荐(0)
摘要:
MyBatis使用RowBounds实现的分页是逻辑分页,也就是先把数据记录全部查询出来,然在再根据offset和limit截断记录返回为了在数据库层面上实现物理分页,又不改变原来MyBatis的函数逻辑,可以编写plugin截获MyBatis Executor的statementhandler,重...
阅读全文
posted @ 2015-08-07 15:29
duanxz
阅读(1018)
推荐(0)
摘要:
SelectKey在Mybatis中是为了解决Insert数据时不支持主键自动生成的问题,他可以很随意的设置生成主键的方式。不管SelectKey有多好,尽量不要遇到这种情况吧,毕竟很麻烦。selectKey Attributes属性描述keyPropertyselectKey 语句结果应该被设置的...
阅读全文
posted @ 2015-08-07 00:00
duanxz
阅读(43600)
推荐(4)
2015年8月6日
摘要:
mysql插入数据后返回自增ID的方法 mysql和oracle插入的时候有一个很大的区别是,oracle支持序列做id,mysql本身有一个列可以做自增长字段,mysql在插入一条数据后,如何能获得到这个自增id的值呢? 方法一:是使用last_insert_id 产生的ID 每次连接后保存在服务
阅读全文
posted @ 2015-08-06 23:57
duanxz
阅读(68026)
推荐(8)
摘要:
一、概述MyBatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMap,resultType是直接表示返回类型的,而resultMap则是对外部ResultMap的引用,但是resultType跟resultMap不能同时存在。在MyBatis进行查...
阅读全文
posted @ 2015-08-06 23:47
duanxz
阅读(1212)
推荐(1)
摘要:
拦截器的一个作用就是我们可以拦截某些方法的调用,我们可以选择在这些被拦截的方法执行前后加上某些逻辑,也可以在执行这些被拦截的方法时执行自己的逻辑而不再执行被拦截的方法。Mybatis拦截器设计的一个初衷就是为了供用户在某些时候可以实现自己的逻辑而不必去动Mybatis固有的逻辑。打个比方,对于Exe...
阅读全文
posted @ 2015-08-06 23:34
duanxz
阅读(8860)
推荐(0)
摘要:
从iBatis到MyBatis,你准备好了吗?对于从事 Java EE 的开发人员来说,iBatis 是一个再熟悉不过的持久层框架了,在 Hibernate、JPA 这样的一站式对象 / 关系映射(O/R Mapping)解决方案盛行之前,iBaits 基本是持久层框架的不二选择。即使在持久层框架层...
阅读全文
posted @ 2015-08-06 23:27
duanxz
阅读(8393)
推荐(2)
摘要:
在项目开发时都大家都希望将SQL在后台打印出来,以帮助开发以及后续的bug修改。如果用JDBC那么可以方便的打印,可使用ibatis就不知道怎么办了,最近在网上找了一段log4j的配置可以很保姆的处理这个问题。这里贴出来给大家参考一下。 把这段配置放到log4j.properties文件中即可。 在
阅读全文
posted @ 2015-08-06 23:23
duanxz
阅读(1214)
推荐(0)
摘要:
ibatis中使用select top #num# * from tableName出现错误。由于初次用ibatis还不知道在它里边拼写SQL语句的一些规则,导致一些自认为很平常的SQL语句,在它这里翻了船。 select top #number#这种写法是不正确的,原因待查。正确的书写方式是 se
阅读全文
posted @ 2015-08-06 23:20
duanxz
阅读(19475)
推荐(1)
摘要:
mysql replace实例说明: UPDATE tb1 SET f1=REPLACE(f1, 'abc', 'def'); REPLACE(str,from_str,to_str) 在字符串 str 中所有出现的字符串 from_str 均被 to_str替换,然后返回这个字符串 这个函数用来批
阅读全文
posted @ 2015-08-06 23:15
duanxz
阅读(18127)
推荐(1)
摘要:
对于针对字符串位置的操作,第一个位置被标记为1。 ASCII(str) 返回字符串str的最左面字符的ASCII代码值。如果str是空字符串,返回0。如果str是NULL,返回NULL。 mysql> select ASCII('2'); -> 50mysql> select ASCII(2); -
阅读全文
posted @ 2015-08-06 23:11
duanxz
阅读(706)
推荐(0)
摘要:
删除binlog方法 第一种方法: mysql> show binary logs; 查看mysql bin-log日志,除了这个以外的,其它都可以使用删除。mysql> purge binary logs to 'binlog.000058'; (删除mysql bin-log日志,删除binlo
阅读全文
posted @ 2015-08-06 22:46
duanxz
阅读(805)
推荐(0)
摘要:
一、在同一个表中冗余存储记录之间的关系(组织机构树),查询时需要根据冗余字段进行关联查询 例如,下面的示例,用户表中有个字段friend标记其朋友关系,要求找出id=2及他的朋友(父节点) sql:用or或union 二、根据另一个表条件,更新本表 2、用户表和设备表 将拥有相同的公司的设备id填入
阅读全文
posted @ 2015-08-06 16:27
duanxz
阅读(1150)
推荐(0)
摘要:
语法糖(Syntactic Sugar):也称糖衣语法,指在计算机语言中添加的某种语法,这种语法对语言的功能没有影响,但是更方便程序员使用。通常来说,使用语法糖能够增加程序的可读性,减少程序代码出错的机会。 相对于C#及许多其他JVM来说,Java在现代编译语言之中属于“低糖语言”。尤其是JDK1.
阅读全文
posted @ 2015-08-06 15:58
duanxz
阅读(8559)
推荐(0)
摘要:
示例: Java中枚举实现的分析: 示例: 显然,enum很像特殊的class,实际上enum声明定义的类型就是一个类。 而这些类都是类库中Enum类的子类(java.lang.Enum<E>)。它们继承了这个Enum中的许多有用的方法。我们对代码编译之后发现,编译器将enum类型单独编译成了一个字
阅读全文
posted @ 2015-08-06 15:56
duanxz
阅读(1893)
推荐(0)
摘要:
plugin of intellij idea key promoter Key Promoter X 是用于基于 IntelliJ 产品(如 IDEA,Android Studio 或 CLion)的插件,它有助于在工作时从鼠标操作中 学习基本的键盘快捷键。 当您在 IDE 内部的按钮上 使用鼠标
阅读全文
posted @ 2015-08-06 15:55
duanxz
阅读(463)
推荐(0)
摘要:
《Thread之一:线程生命周期及五种状态》 《Thread之二:sleep、wait、yield、join》 《juc线程池原理(四): 线程池状态介绍》 一、回顾下概念 Java中的多线程是一种抢占式的机制而不是分时机制。线程主要有以下几种状态:新建,就绪,运行,阻塞,死亡。抢占式机制指的是有多
阅读全文
posted @ 2015-08-06 15:54
duanxz
阅读(1214)
推荐(0)
摘要:
《Thread之一:线程生命周期及五种状态》 《Thread之二:sleep、wait、yield、join》 《juc线程池原理(四): 线程池状态介绍》 一、线程的生命周期及五种基本状态 关于Java中线程的生命周期,首先看一下下面这张较为经典的图: 上图中基本上囊括了Java中多线程各重要知识
阅读全文
posted @ 2015-08-06 15:53
duanxz
阅读(13805)
推荐(0)
摘要:
两个对象值相同(x.equals(y) == true),则一定有相同的hash code。 这是java语言的定义: 因为:Hash,一般翻译做“散列”,也有直接音译为"哈希"的,就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。这种
阅读全文
posted @ 2015-08-06 15:44
duanxz
阅读(12466)
推荐(2)
摘要:
http://www.ibm.com/developerworks/cn/java/j-lo-jse65/index.html长久以来,由于大量(甚至几乎所有)的 Java 应用都依赖于数据库,如何使用 Java 语言高效、可靠、简洁地访问数据库一直是程序员们津津乐道的话题。新发布的 Java SE...
阅读全文
posted @ 2015-08-06 15:42
duanxz
阅读(968)
推荐(0)
摘要:
1. 异常机制 异常机制是指当程序出现错误后,程序如何处理。具体来说,异常机制提供了程序退出的安全通道。当出现错误后,程序执行的流程发生改变,程序的控制权转移到异常处理器。 传统的处理异常的办法是,函数返回一个特殊的结果来表示出现异常(通常这个特殊结果是大家约定俗称的),调用该函数的程序负责检查并分
阅读全文
posted @ 2015-08-06 15:42
duanxz
阅读(1381)
推荐(0)