Mybatis中的mapper.xml使用注意事项

最近在做项目的过程中,使用mybatis的mapper.xml文件发现了一个很低级的错误,在此记录下来提醒自己。

一. 日期类型

数据库采用oracle,日期字段类型为Date。代码中对应实体类的类型为Date,这里注意Date要使用java.util.Date。在使用mybatis自动代码生成工具时,需要指定生成的mapper.xml文件中的字段的jdbcType为TIMESTAMP,因为默认生成的是Date。如果使用默认的Date,在查询时日期的精度只会精确到天,后面的时分秒精度出现丢失。

理论知识:

java.sql 定义的时间类型包含三个类,date,time和timestamp.分别用来表示日期(无时间信息,eg: yyyy-mm-dd),时间(只处理时间,无日期部分, eg:hh:mm:ss)和时间戳(精确到纳秒级别)在它们都继承自java.util.date。

 

二.  自定义的specMapper.xml

有时候自动生成的mapper无法满足我们的需求,需要自己手动编写mapper.xml文件。在手写mapper文件时,需要编写resultMap标签,并指定数据库中各个字段对应的jdbcType。如:


    
    
    
    
    
    
    
    
    
    

我出现的错误就是在编写了resultMap标签后,在编写select语句时,还使用了别名!!!错误如下:

    
    
        select 
            job_name,
            sdb,
            tdb,
            sowner,
            stab,
            towner,
            ttab,
            error_flag,
            comm,
            create_date
         from 

好,问题解决。

其实这两个都是很低级的错误,以前只知道套用框架的东西,并没有去想为什么,在此警示自己多去学习mybatis底层的原理!

你可能感兴趣的:(JAVA)