Mybatis的诸多注意点(多参数,建表,小注意点等)

1. #{} 与${}的区别

#{}返回的是一个字符串,返回值为 "字符串"

${}返回的是一个字符流,返回值为 字符流,没有""

举个例子:

 

//Mapper中的对应方法
public boolean InsertIntoArtical(ArticalComment articalComment);


   
       insert into ${tableName}(artical_ID)
       values(#{articalID})
   

假设这个ArticalComment对象为

tableName = Artical;
articalID = 9527;

这个mapper实际执行的语句是

insert into Artical (artical_ID) 
    values(9527)

 假设上述mapper中的${tableName}改为 #{tableName},此时执行语句为

insert into 'Artical' (artical_ID) 
    values(9527)

2.mybatis传递多个多种类型的参数

Mybatis的诸多注意点(多参数,建表,小注意点等)_第1张图片

上图中两个参数类型不一致,且是动态sql语句必须用到的两个属性,tableName为数据库表明,后者为需要插入的数据。

使用paraterType(包名+实体类名)。具体参考1中的mapper。

3.mybatis执行复杂事件,诸如建表之类无法使用注解方式完成的事件。

举个例子

    
        create table ${tableName} (
             ID int (11) primary key auto increment,
             friend_ID int (11) not null ,
            FOREIGN KEY (friend_ID) REFERENCES Userinfo (ID)
        )
    

mybatis执行DDL语句 将全部使用update标签。

 

之后可能还有很多mybatis问题,再接着补充就是。

2020/3/3 第一次编写

你可能感兴趣的:(Recommend_News)