Mybatis中运用小技巧(一)

1、对于时间戳的处理

如果你使用的是Mysql数据库的话,那么时间类型可以存储为timestamp类型,而你的项目中的实体类中相应属性的类型可以定义为java.util.Date类型。那么,存储时:

你的实体类.setTime(new Timestamp(System.currentTimeMillis()));		//我的实体类中对应属性名为time,Timestamp具体类型为java.sql.Timestamp.Timestamp

如果在页面前台输出你希望可以输出的格式为“yyyy年MM月dd日HH:mm:ss”,那么你可以在你的实体类里专门写一个方法进行处理:

public String getNTime(){		//我将此方法取名为getNTime
    	DateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日HH:mm:ss"); 
    	String s = sdf.format(time);
    	return s;
    }

2、如果传入mybatis的是一组数

这时可以分为两种情况:

一是传入是多个参数,如:

mapper.java中声明的方法是:

Follow selectByUserId1AndUserId2(Integer id, Integer id2);
则在mapper.xml里的写法为:(以0、1来代替,适用于参数较少的情况)

二是传入的参数太多,需要包装为数组、List、Map的情况,如(此时多用于sql语句中出现in关键字):

mapper.java中声明的方法是:

List selectByIds(List users);
则在mapper.xml里的写法为:
这是list的情况,数组与之类似,只是需要将
collection="list"改为collection="array"


而如果是map情况,则是因为查询的参数有多个,如:

mapper.java中声明的方法是:

List findByIds(String name, Long[] ids);

 
  

需要转换成:

List findByIds(Map params);

 
  
Map params = new HashMap(2);
params.put("name", name);
params.put("ids", ids);
mapper.findByIdsMap(params);

则在mapper.xml里的写法为:
  

以上便是博主在mybatis中使用的方式,如果大家看了之后感觉博主哪边有错或者有疑问请在下方评论指出,博主将感激不尽!

你可能感兴趣的:(数据库)