mybatis输入映射和输出映射实例详解
程序员文章站
2024-02-24 17:43:19
输入映射
mybatis支持输入
哪些类型
简单类型、pojo,hashmap,pojo的包装的类型。
需求:查询用户列表:已经下过订单男性用户,那么传入的参数包含...
输入映射
mybatis支持输入
哪些类型
简单类型、pojo,hashmap,pojo的包装的类型。
需求:查询用户列表:已经下过订单男性用户,那么传入的参数包含用户信息(user)和订单信息(order)
输出映射
resulttype
(1)支持的类型
基本类型、pojo、hashmap
(2)输出是pojo和pojo列表问题
不管是输出是单个pojo,还是pojo列表,在mapper.xml中resulttype都是一样的,只是在mapper接口中返回值类型不一样。
(3)使用条件
使用resulttype进行输出映射的时候,只要查询出来的列名和pojo的属性名一致,该列才可以映射成功。
只要查询出来的列名和属性名有一个能对应的上,就会创建pojo对象。
如果查询出来的列名和属性名没有一个能对应上,就不会创建pojo对象。
sqlmapconfig.xml核心配置文件
<?xml version="1.0" encoding="utf-8" ?> <!doctype configuration public "-//mybatis.org//dtd config 3.0//en" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <environments default="devlelopment"> <environment id="devlelopment"> <transactionmanager type="jdbc"></transactionmanager> <datasource type="pooled"> <property name="driver" value="com.mysql.jdbc.driver"></property> <property name="url" value="jdbc:mysql://localhost:3306/mysql04"></property> <property name="username" value="root"></property> <property name="password" value="123"></property> </datasource> </environment> </environments> <!--(6)在核心配置文件加载映射文件--> <mappers> <mapper resource="com/sgl/demo2/user.xml"></mapper> <mapper resource="com/sgl/demo3/mapper/usermapper.xml"></mapper> <mapper resource="com/sgl/demo5/mapper/usermapper.xml"></mapper> </mappers> </configuration>
usermapper .java
package com.sgl.demo5.mapper; import com.sgl.demo5.pojo.user; import com.sgl.demo5.vo.userqueryvo; import java.util.list; public interface usermapper { // 根据返回类型选择selectone或者selectlist public list<user> finduserlist(userqueryvo userqueryvo); }
usermapper .xml
<?xml version="1.0" encoding="utf-8" ?> <!doctype mapper public "-//mybatis.org//dtd mapper 3.0//en" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!--namespace :命名空间,对sql进行分类管理,sql分离--> <mapper namespace="com.sgl.demo5.mapper.usermapper"> <!-- id:表示配置文件中的sql,称为statement 的id parametertype:参数的类型 resulttype:返回值的类型, 如果返回值是一个集合,那么类型就写集合中元素的类型 --> <!--查询用户列表,主键查询--> <select id="finduserlist" parametertype="com.sgl.demo5.vo.userqueryvo" resulttype="com.sgl.demo5.pojo.user"> select username,id from user where username like "%"#{user.username}"%" and sex=#{user.sex} </select> </mapper>
userqueryvo .java
package com.sgl.demo5.vo; import com.sgl.demo5.pojo.user; public class userqueryvo { private user user; public user getuser() { return user; } public void setuser(user user) { this.user = user; } }
test1.java
package com.sgl.demo5.test; import com.sgl.demo5.mapper.usermapper; import com.sgl.demo5.pojo.user; import com.sgl.demo5.vo.userqueryvo; import org.apache.ibatis.io.resources; import org.apache.ibatis.session.sqlsession; import org.apache.ibatis.session.sqlsessionfactory; import org.apache.ibatis.session.sqlsessionfactorybuilder; import org.junit.before; import org.junit.test; import java.io.ioexception; import java.io.inputstream; import java.util.list; public class test1 { private sqlsessionfactory sqlsessionfactory; @before public void fun0() throws ioexception { inputstream resourceasstream = resources.getresourceasstream("sqlmapconfig.xml"); this.sqlsessionfactory= new sqlsessionfactorybuilder().build(resourceasstream); } @test public void fun1() { sqlsession sqlsession = this.sqlsessionfactory.opensession(); usermapper usermapper = sqlsession.getmapper( usermapper.class ); userqueryvo userqueryvo=new userqueryvo(); user user=new user(); user.setusername("小"); user.setsex("1"); userqueryvo.setuser(user); list<user> userlist = usermapper.finduserlist(userqueryvo); for ( user u:userlist ) { system.out.println(u); } } }
以上所述是小编给大家介绍的mybatis输入映射和输出映射详解整合,希望对大家有所帮助
上一篇: Yii调试查看执行SQL语句的方法
下一篇: 最长回文