mybatis映射
- 增删改查的普通映射,参数类似于el表达式
- resultMap对应实体类
- 高级映射中ResultMap:
- constructor 用于构造方法
- result 用于普通字段
- association 用于复杂类
- collection 用于复杂类集合
- discriminator 根据不同结果去映射不同元素
- 动态 SQL 类似于JSTL
类型映射关系
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 在插入操作完成之后,参数Address的id属性就已经被赋值了,再在逻辑层利用Address.getId()获取就好。
<insert id="insertAddress" parameterType="com.vadonmo.model.Address" useGeneratedKeys="true" keyProperty="id"> </insert>
-
#{}
: 解析为一个 JDBC 预编译语句(prepared statement)的参数标记符,一个#{ }
被解析为一个参数占位符?
。${}
: 仅仅为一个纯碎的 string 替换,在动态 SQL 解析阶段将会进行变量替换。
表名作为变量时,必须使用${}