<where>
<if test="userName != null and userName != ''">
and user_name like concat('%',#{userName},'%')
</if>
<if test="suerEmail != null and userEmail != ''">
and user_email=#{userEmail}
</if>
</where>
当if条件都不满足时,where元素中没有内容,所以在SQL中不会出现where。如果if满足条件where中的内容出现在,并会自动去除结尾

<set>
<if test="userName != null and userName != ''">
user_name=#{userName},
</if>
<if test="userEmail != null and userEmail != ''">
user_Email=#{userEmail},
</if>
id=#{id},
</set>
使用set时要注意,最好把必选项放在最后并加"," set会去除","的。

where id in
<foreach collection="list" open="(" close=")" separator="," item="id" index="i">
#{id}
</foreach>
collection的取值取决于传入的参数类型。
private Object warpCollection(final Object object){
if (onject instanceof Object) {
StrictMap<Object> map=new StrictMap<Object>();
map.put("collection",object);
if (object instanceof List){
map.put("list",object);
}
return map;
}
} else if(object!=null && object.getClass().isArray()){
StrictMap<Object> map=new StrictMap<Object>();
map.put("array",object);
return map;
}
return object;
}

final 修饰符的作用
the final keyword in java is used to restrict the user.the java final keyword can be used in many context.final can be:
variable
method
class
1 stop value change
2 stop method overridding
3 stop class inheritance

1) example of final variable
public class HelloWorld{

public static void main(String []args){
Bike9 obj=new Bike9();
obj.run();
}

}
class Bike9{
final int speedlimit=90;//final variable
void run(){
speedlimit=400;
}
}
oupput:error: cannot assign a value to final variable speedlimit speedlimit=400;

2) example of final method
if you make any mwthod as final,you can not override it.

public class HelloWorld{
public static void main(String []args){
Honda honda=new Honda();
honda.run();
}
}
class Bike9{
final void run(){System.out.println("running");}
}
class Honda extends Bike9{
void run(){System.out.println("running safely with 100kmph");}
}

output:run() in Honda cannot override run() in Bike9 void run(){System.out.println("running safely with 100kmph");}

3) java final class

if you make any class as final,you cannot extend it.

final class Bike9{
void run(){System.out.println("running");}
}
class Honda extends Bike9{
void run(){System.out.println("running safely with 100kmph");}
}

output: error: cannot inherit from final Bike9

Q) Is final method inherited?
Ans) Yes, final method is inherited but you cannot override it.

Q) What is blank or uninitialized final variable?
A final variable that is not initialized at the time of declaration is known as blank final variable.

If you want to create a variable that is initialized at the time of creating object and once initialized may not be changed, it is useful.

It can be initialized only in constructor.

Que) Can we initialize blank final variable?
Yes, but only in constructor.

static blank final variable
A static final variable that is not initialized at the time of declaration is known as static blank final variable. It can be initialized only in static block.

Q) What is final parameter?
If you declare any parameter as final, you cannot change the value of it.

Q) Can we declare a constructor final?
No, because constructor is never inherited.

instanceof
The java instanceof operator is used to test whether the object is an instance of the specified type(class or subclass or interface)

The instanceof in java is also known as type comparison operator because it compares the instance with type. it returns either true or flase. if we apply the instanceof operator with any vriable that has null value,it returns false.

Example

downcast 向下类型转化
interface Printable{}
class A implements Printable{
public void a(){
System.out.println("a method");
}

}
class B implements Printable{
public void b(){
System.out.println("b method");
}
}

class Call{
void invoke(Printable p){//upcasting
if(p instanceof A){
A a=(A)p;//Downcasting
a.a();
}
if(p instanceof B){
B b=(B)p;//Downcasting
b.b();
}

}
}//end of Call class

class Test4{
public static void main(String args[]){
Printable p=new B();
Call c=new Call();
c.invoke(p);
}
}

output:b method

Map
Java List Interface

List Interface is the subinterface of collection.It contains methods to insert and deleete elements in index basic.It is a factory of ListIterator interface.

List Interface declaration

public interface List<E> extends Collection<E>

Methods of Java List Interface

void add(int index,Object element)
boolean addAll(int index,Collection c)
Object get(int index)
Object set(int index,Object element)
Object remove(int index)
ListIterator listIterator()
ListIterator listIterator(int index)

Java ListIterator Interface

ListIterator Interface is used to traverse element in forword and backword direction.

ListIteartor Interface Declaration

public interface ListIterator<E> extends Iterator<E>

Methods of ListIterator Interface

boolean hasNext()
Object nect()
boolean hasPrevious()
Object previous()

Java Map Interface

A map contains values on the basic of key i.e key and value pair.Each key and value pair is known as an entry.Map contains only unioue keys.

Map is useful if you have to search,update or delete elements on the basic of key

Useful methods of Map interface

Object put(Object key,Object value)
void put(Map map)
Object remove(Object key)
boolean containsKey(Object key)
Set ketSet()
Set entrySet()

Map.Entry Interface

Entry is the sub interface of Map.So we will be accessed it by Map.Entry name.It provides methods to get key and value.

Methods of Map.Entry interface

Object getKey()
Object getValue()

Java Map Example

Map<Integer,String> map=new HashMap<Integer,String>()
map.put(100,"Amit)
map.put(101,"Vijay")
map.put(102,"Rahui")
for(Map.Entry m:map.entrySet()){
System.out.println(m.getKey()+" "+m.getValue())
}

判断是否为数组类型的方法
1.instanceof
2.object.getClass().isArray()

mybatis和java一些知识记录的更多相关文章

  1. Java实用知识记录 —— 截止到Java8

    记录Java实用知识点,截止(包括)到Java8,只作概要的描述,不涉及到具体细节.变量:int.long的包装类支持无符号位操作,即其在内存中的位可以用来全部表示正数."_"可以 ...

  2. java面试知识记录

    1.数据库 (1)数据库优化      面试求职:数据库常见面试题(数据库优化思路) 数据库优化方案整理 (2)数据库的事务 MySQL——事务(Transaction)详解 MySQL 事务 2.设 ...

  3. Java基础知识(壹)

    写在前面的话 这篇博客,是很早之前自己的学习Java基础知识的,所记录的内容,仅仅是当时学习的一个总结随笔.现在分享出来,希望能帮助大家,如有不足的,希望大家支出. 后续会继续分享基础知识手记.希望能 ...

  4. Java并发知识总结,超详细!

    首先给大家分享一个github仓库,上面放了200多本经典的计算机书籍,包括C语言.C++.Java.Python.前端.数据库.操作系统.计算机网络.数据结构和算法.机器学习.编程人生等,可以sta ...

  5. DataBase MongoDB基础知识记录

    MongoDB基础知识记录 一.概念: 讲mongdb就必须提一下nosql,因为mongdb是nosql的代表作: NoSQL(Not Only SQL ),意即“不仅仅是SQL” ,指的是非关系型 ...

  6. 学习Spring必学的Java基础知识(2)----动态代理

    Spring AOP使用动态代理技术在运行期织入增强的代码,为了揭示Spring AOP底层的工作机理,有必要对涉及到的Java知识进行学习.Spring AOP使用了两种代理机制:一种是基于JDK的 ...

  7. Java基础知识回顾之七 ----- 总结篇

    前言 在之前Java基础知识回顾中,我们回顾了基础数据类型.修饰符和String.三大特性.集合.多线程和IO.本篇文章则对之前学过的知识进行总结.除了简单的复习之外,还会增加一些相应的理解. 基础数 ...

  8. Java基础知识总结(超级经典)

    Java基础知识总结(超级经典) 写代码: 1,明确需求.我要做什么? 2,分析思路.我要怎么做?1,2,3. 3,确定步骤.每一个思路部分用到哪些语句,方法,和对象. 4,代码实现.用具体的java ...

  9. Java开发知识之Java数组

    Java开发知识之Java数组 一丶数组简介 首先,不管是Java 还是 C++ 还是其它语言.都有数组. (有可能叫法不同) 数组简而言之就是存储一段连续相同数据类型的数据结构 在Java中数组可以 ...

随机推荐

  1. markdown 表情包大法

    前段时间偶然发现了markdown竟然可以插入表情,而且竟然如此的简单 表情包网站 (有可能是官网):点击跳转 这些东西真的是有点意思啊,容我举个栗子

  2. 前端常用的库和实用技术之JavaScript多线程

    多线程概念: 多线程是指从软件或硬件上实现多个线程并发执行的技术.具有多线程能力的计算机因有硬件支持而能够在 同一时间执行多于一个线程,进而提升整理处理性能.具有这种能力的系统包括对称多处理机,多核心 ...

  3. sql (3) where

    WHERE 子句用于规定选择的标准.语法SELECT 列名称 FROM 表名称 WHERE 列 运算符 值 引号的使用请注意,我们在例子中的条件值周围使用的是单引号. SQL 使用单引号来环绕文本值( ...

  4. Batch - Windows Batch 常用命令

    比较符号(不能用 < , >) The reason operators like > are not used is because they have special meani ...

  5. 8-5接口测试用例设计与编写2 rest-assured

    rest-assured 简约的接口测试DSL 支持xml json的结构化解析 支持xpath jsonpath gpath等多种解析方式 对Spring的支持比较前面 底层是httpclient ...

  6. Perl 数组

    Perl 数组 Perl 数组一个是存储标量值的列表变量,变量可以是不同类型. 数组变量以 @ 开头.访问数组元素使用 $ + 变量名称 + [索引值] 格式来读取,实例如下: 实例 #!/usr/b ...

  7. Linux课程---15、域名相关

    Linux课程---15.域名相关 一.总结 一句话总结: 先购买域名,再备案,再解析,域名即可使用 1.域名备案是怎么回事(比如二级域名,三级域名)? 每个二级域名需要备案一次,三级域名不需要备案, ...

  8. Reboot- Linux必学的60个命令

    1.作用 reboot命令的作用是重新启动计算机,它的使用权限是系统管理者. 2.格式 reboot [-n] [-w] [-d] [-f] [-i] 3.主要参数 -n: 在重开机前不做将记忆体资料 ...

  9. POJ3321Apple Tree

    Apple Tree Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 39566 Accepted: 11727 Descript ...

  10. Python全栈开发:线程代码实例

    #进程与线程的关系 """ 多进程(主进程,子进程): 优点:能同时利用多个CPU,进行多个操作,提高效率. 缺点:耗费内存资源(进程要开辟内存空间),进程不是越多越好, ...