目前我本人正在学习MyBatis框架,在原先了解并且懵懵懂懂使用的基础上,开始系统正式的学习。阐述了MVC架构模式和三层架构,明晰了在Web项目中的普遍编码层次,回顾了JDBC连接数据库,建立了使用MyBatis和MySQL的Maven项目,解释了STDOUT_LOGGING日志和手动提交事务,记录了MyBatis中#占位符的使用方法,回顾了MyBatis执行SQL语句的过程和使用到的一些重要类和接口,记录了将固定化的代码整合到一个工具类MyBatisUtil中,以减少代码量。记录了dao层接口的实现以及为什么要实现它。记录了MyBatis动态代理和使用动态代理的要求以及使用了动态代理生成的实现类,记录了parameterType属性和它的使用。记录了MyBatis框架下执行SQL语句传递简单类型参数的方法。本篇博客记录mapper.xml文件传参时,使用javaType属性和jdbcType属性。
上一篇博文记录的是给SQL语句传递实体类对象参数的方法,感兴趣的读者可以查阅,链接如下:
MyBatis学习:MyBatis框架下执行SQL语句传递实体类参数_你是我的日月星河的博客-CSDN博客目前我本人正在学习MyBatis框架,在原先了解并且懵懵懂懂使用的基础上,开始系统正式的学习。阐述了MVC架构模式和三层架构,明晰了在Web项目中的普遍编码层次,认识了框架,回顾了JDBC连接数据库,建立了使用MyBatis和MySQL的Maven项目,解释了STDOUT_LOGGING日志和手动提交事务,记录了MyBatis中#占位符的使用方法,回顾了MyBatis执行SQL语句的过程和使用到的一些重要类和接口,记录了将固定化的代码整合到一个工具类MyBatisUtil中,以减少代码量。...https://blog.csdn.net/weixin_46281472/article/details/126089273
javaType属性和jdbcType属性应用在mapper.xml文件的标签内,传参的时候 #{ } 内部。这里我直接给出示例:
可以从名字中看出来:javaType就是指定传过来的参数的所属java类型,javaType属性值是类型的全限定路径名称,当然也可以是别名。这个在MyBatis官方文档手册中有,与resultType属性值有点类似。jdbcType就是标识指定出对应的数据库中字段的类型。jdbcType属性值在MyBatis官方文档手册中是有的。这里我粘贴一下java中的类型和数据库中的类型之间的对应,如下所示:
JDBC Type Java Type
CHAR String
VARCHAR String
LONGVARCHAR String
NUMERIC java.math.BigDecimal
DECIMAL java.math.BigDecimal
BIT boolean
BOOLEAN boolean
TINYINT byte
SMALLINT short
INTEGER INTEGER
BIGINT long
REAL float
FLOAT double
DOUBLE double
BINARY byte[]
VARBINARY byte[]
LONGVARBINARY byte[]
DATE java.sql.Date
TIME java.sql.Time
TIMESTAMP java.sql.Timestamp
CLOB Clob
BLOB Blob
ARRAY Array
DISTINCT mapping of underlying type
STRUCT Struct
REF Ref
DATALINK java.net.URL
其实在一般写项目的时候,这两个属性是不写的,就像是parameterType一样,是可有可无的。
但是,当写一个 代码生成器的时候,这个就需要必须加上去,为了自动生成代码的准确性。能写代码生成器程序的,我目前认为肯定也是经验很丰富的程序员了!!