mybatis利用mapper代理的方法实现多条件查询

来源:互联网 发布:华为p10抽奖软件 编辑:程序博客网 时间:2024/05/18 02:52

SQLMapperConfig.xml信息:(一般这个是不变的)

<?xml version="1.0" encoding="utf-8" ?><!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN"  "http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration><environments default="development">          <environment id="development">              <!-- 配置JDBC事务控制,由mybatis进行管理 -->              <transactionManager type="JDBC"></transactionManager>              <!-- 配置数据源,采用mybatis连接池 -->              <dataSource type="POOLED">                  <property name="driver" value="com.mysql.jdbc.Driver" />                  <property name="url" value="jdbc:mysql://localhost:3306/spring"/>                  <property name="username" value="root" />                  <property name="password" value="5315314sd" />              </dataSource>           </environment>  </environments>     <mappers>    <!-- 加载 usermapper.xml 文件 -->    <mapper resource="usermapper.xml"/>    </mappers></configuration>

usermapper.xml信息:

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Config 3.0//EN"  "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><!-- mapper 的 namespace 的值要等于 usermapper 接口的地址(包名.接口名) --><mapper namespace="duotiaojianchaxun.usermapper"><!-- 查询用户id 名字要等于 userdao 接口里面对应的方法名, parameterType 的类型等于对应方法里面的输入参数类型, resultType是对应方法里面的返回值类型,例如 usermapper 接口里面的方法:finduserlist 的返回值类型 UserCustomerusercustomer: 是在 UserQueryVo 类里面定义的 UserCustomer 的引用名,而并不是 UserCustomer 类名 --><select id="finduserlist" parameterType="duotiaojianchaxun.UserQueryVo" resultType="duotiaojianchaxun.UserCustomer">select * from user where id =#{usercustomer.id} and name=#{usercustomer.name}</select></mapper>

user类:

package test;public class user {private int id;private String name;private String password;public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public int getId() {return id;}public void setId(int id) {this.id = id;}@Overridepublic String toString() {return "user [id=" + id + ", name=" + name + ", password=" + password + "]";}}

user的包装类(一般在关联查询的时候,不仅需要user 的信息,还需要比如订单等其他信息,所以把user 类包装在另一个类中)

package duotiaojianchaxun;import test.user;public class UserCustomer extends user{//....}

userqueryVo类:

package duotiaojianchaxun;public class UserQueryVo {private UserCustomer usercustomer;public UserCustomer getUsercustomer() {return usercustomer;}public void setUsercustomer(UserCustomer usercustomer) {this.usercustomer = usercustomer;}}

usermapper接口类:

package duotiaojianchaxun;import java.util.List;import test.user;public interface usermapper {public List<UserCustomer> finduserlist(UserQueryVo userqueryvo);public void inserUser(user user);}

测试程序:

package duotiaojianchaxun;import java.io.IOException;import java.io.InputStream;import java.util.List;import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;public class Test {public static void main(String[]args) throws IOException{UserQueryVo userqueryvo = new UserQueryVo();UserCustomer uc = new UserCustomer();//设置查询条件:查询id=2并且名字为:ml 的用户uc.setId(2);uc.setName("ml");userqueryvo.setUsercustomer(uc);String resource = "SqlMapConfig.xml";InputStream is = Resources.getResourceAsStream(resource);SqlSessionFactory sf = new SqlSessionFactoryBuilder().build(is);SqlSession sqlsession = sf.openSession();usermapper ud = sqlsession.getMapper(usermapper.class);List<UserCustomer> list = ud.finduserlist(userqueryvo);System.out.println(list);}}

整个项目框架图:


原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 两个多月的宝宝四天没大便怎么办 两个多月的宝宝几天没大便怎么办 2个月3天没大便怎么办 两个月大的宝宝发烧40度怎么办 两个月大的宝宝感冒了怎么办 四个月宝宝拉水样大便要怎么办 六个月的宝宝咳嗽有痰怎么办 未满月的宝宝大便脓状怎么办 五个月的宝宝总是吃手怎么办 小孩子学数字怎么也学不会怎么办 小孩学数字老是学不会该怎么办 只买了大人票忘买儿童的了怎么办 铝合金滑动门没轨道安纱门怎么办 移门衣柜门与柜体有冶缝隙怎么办 推拉门关门时撞门框声音大怎么办 两岁宝宝夏天不盖被子怎么办 家里有好多会爬的小黑虫怎么办 刚贴的壁纸怎么发霉了怎么办 晚上睡觉一熄灯有许多小虫子怎么办 一岁宝宝夏天爱哭不爱吃饭怎么办 合肥房子卖了户口没地方迁怎么办 忌作灶的日子新房装橱柜了怎么办 刮水泥浆的墙面刮不住腻子怎么办 小学二年级孩子偷钱 老师怎么办 发现自己读初中的儿子偷钱怎么办? 做错事了得不到亲人的原谅怎么办? 窗口 窗套与墙缝隙大怎么办 中班小孩还不会认1到10怎么办 母猫奶头被小猫咬伤了怎么办 口红不小心弄到衣服上怎么办 脖子后背疼的睡不着觉应该怎么办 君子兰用高锰酸钾泡浓度高了怎么办 五个月宝宝认人不要奶奶睡怎么办 幼儿小班安全卡鱼刺了怎么办教案 学籍在一年级学生在二年级怎么办 一岁多宝宝挑食不爱吃饭菜怎么办饭 换了新手机微信好友显示不全怎么办 朋友人在外地 联系不上怎么办 幼儿连字母都记不住该怎么办 车一边轮子掉农村路边小水沟怎么办 20个月小孩脾气急燥怎么办