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);}}
整个项目框架图:
阅读全文
0 0
- mybatis利用mapper代理的方法实现多条件查询
- mybatis的mapper动态代理方法
- Mybatis之mapper代理方法
- Mybatis中mapper代理方法
- mapper代理方法开发mybatis
- 【mybatis】--mapper代理实现dao
- Mybatis mapper代理开发方法实现增删改查
- mybatis的mapper代理方法开发实现用户的增删改查
- mybatis 的条件查询的三个方法实现
- Mybatis Mapper动态代理方法 即 只写Dao接口 不谢Dao的实现类
- Mybatis Mapper动态代理方法 即 只写Dao接口 不写Dao的实现类
- Mybatis Mapper动态代理方法 即 只写Dao接口 不写Dao的实现类
- Mybatis Mapper动态代理方法 即 只写Dao接口 不谢Dao的实现类
- mybatis mapper代理方法实现单表的增删改查
- 基于Mapper代理配置的Mybatis多表查询一对一的三种方式
- mybatis mapper.xml 区间查询条件
- 基于Mapper代理配置的Mybatis多表查询一对多
- 【SpringMVC+mybatis】6.mybatis mapper代理方法
- 瀑布流排序中的position偏置消除的实验
- 使用com.google.common.cache.Cache缓存
- Python对象分类
- 多线程
- Qt信号与槽
- mybatis利用mapper代理的方法实现多条件查询
- Idea中搜索范围去掉某些目录
- 你写的代码,是别人的噩梦吗?
- 【Mybatis】使用SSM框架完成jsTree
- mysql数据库优化的一些经验
- 看不见的编程语言:Whitespace
- Chrome网页设置眼睛保护色
- 实验_Struts2国际化 登录页面国际化的两种实现方法
- CSS浮动float详解