mybatis的sql语句和映射文件
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MyBatis 、 SQL语句映射文件
二、SQL语句映射文件(1) SQL 映射XML 文件是所有sql语句放置的地方。需要定义一个workspace,一般定义为对应的接口类的路径。写好SQL语句映射文件后,需要在MyBAtis配置文件mappers标签中引用,例如: Xml代码 mappers mapper resource = com/liming/manager/data/mapp
上一篇:MyBatis学习之一、MyBatis简介与配置MyBaits+Spring+MySql
下一篇:MyBatis学习之二、SQL语句映射文件(2)
二、SQL语句映射文件(1)
SQL 映射XML 文件是所有sql语句放置的地方。需要定义一个workspace,一般定义为对应的接口类的路径。写好SQL语句映射文件后,需要在MyBAtis配置文件mappers标签中引用,例如:
Xml代码
resource="com/liming/manager/data/mappers/UserMapper.xml" /> resource="com/liming/manager/data/mappers/StudentMapper.xml" /> resource="com/liming/manager/data/mappers/ClassMapper.xml" /> resource="com/liming/manager/data/mappers/TeacherMapper.xml" /> SQL 映射XML 文件一些初级的元素: 1. cache –配置给定模式的缓存 2. cache-ref –从别的模式中引用一个缓存 3. resultMap –这是最复杂而却强大的一个元素了,它描述如何从结果集中加载对象 4. sql –一个可以被其他语句复用的SQL 块 5. insert –映射INSERT 语句 6. update –映射UPDATE 语句 7. delete –映射DELEETE 语句 8. select - 映射SELECT语句 2.1 resultMap resultMap 是MyBatis 中最重要最强大的元素了。你可以让你比使用JDBC 调用结果集省掉90%的代码,也可以让你做许多JDBC 不支持的事。现实上,要写一个等同类似于交互的映射这样的复杂语句,可能要上千行的代码。ResultMaps 的目的,就是这样简单的语句而不需要多余的结果映射,更多复杂的语句,除了只要一些绝对必须的语句描述关系以外,再也不需要其它的。 resultMap属性:type为java实体类;id为此resultMap的标识。 resultMap可以设置的映射: 1. constructor –用来将结果反射给一个实例化好的类的构造器 a) idArg – ID 参数;将结果集标记为ID,以方便全局调用 b) arg –反射到构造器的通常结果 2. id – ID 结果,将结果集标记为ID,以方便全局调用 3. result –反射到JavaBean 属性的普通结果 4. association –复杂类型的结合;多个结果合成的类型 a) nested result mappings –几resultMap 自身嵌套关联,也可以引用到一个其它上 5. collection –复杂类型集合a collection of complex types 6. nested result mappings – resultMap 的集合,也可以引用到一个其它上 7. discriminator –使用一个结果值以决定使用哪个resultMap a) case –基本一些值的结果映射的case 情形 i. nested result mappings –一个case 情形本身就是一个结果映射,因此也可以包括一些相同的元素,也可以引用一个外部resultMap。 2.1.1 id、result id、result是最简单的映射,id为主键映射;result其他基本数据库表字段到实体类属性的映射。 最简单的例子: Xml代码 column="STUDENT_BIRTHDAY"/> id、result语句属性配置细节: 属性 描述 property 需要映射到JavaBean 的属性名称。 column 数据表的列名或者标签别名。 javaType 一个完整的类名,或者是一个类型别名。如果你匹配的是一个JavaBean,那MyBatis 通常会自行检测到。然后,如果你是要映射到一个HashMap,那你需要指定javaType 要达到的目的。 jdbcType 数据表支持的类型列表。这个属性只在insert,update 或delete 的时候针对允许空的列有用。JDBC 需要这项,但MyBatis 不需要。如果你是直接针对JDBC 编码,且有允许空的列,而你要指定这项。 typeHandler 使用这个属性可以覆写类型处理器。这项值可以是一个完整的类名,也可以是一个类型别名。 支持的JDBC类型 为了将来的引用,MyBatis 支持下列JDBC 类型,通过JdbcType 枚举: BIT,FLOAT,CHAR,TIMESTAMP,OTHER,UNDEFINED,TINYINT,REAL,VARCHAR,BINARY,BLOB,NVARCHAR,SMALLINT,DOUBLE,LONGVARCHAR,VARBINARY,CLOB,NCHAR,INTEGER,NUMERIC,DATE,LONGVARBINARY,BOOLEAN,NCLOB,BIGINT,DECIMAL,TIME,NULL,CURSOR