栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

MyBatis-parameterType参数的理解2

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

MyBatis-parameterType参数的理解2

 

 

 

 

List students=dao.queryStudent("李四");

==>  Preparing: select id,name ,email,age from student where name =李四

数据是原样使用的,查询sql语句的时候会出错

需要加上‘ ’

List students=dao.queryStudent("’李四’");

StudentDao:

package com.bjpowernode.dao;

import com.bjpowernode.domain.Student;
import com.bjpowernode.vo.QueryParama;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface StudentDao {
    //查询学生
    Student selectById(Integer id);

    //dao接口的方法是一个简单类型的  java基本数据类型 和字符串
    Student selectByEmail(String email);

    
    List selectByNameOrAge(@Param(value="myname") String name,
                                    @Param("myage") Integer age);

    
    List selectByObject(Student student);

    //对象不局限于实体类,他可以是任意的一个实体类,有属性,有Sett Gett方法就能使用
    List selectByQueryParama(QueryParama parama);

    //使用位置获取参数
    List selectByPosition(String name,Integer age);

    
    List selectStudentByMap(Map map);

    //更新
    int updateStudent(Student student);


    //${}占位符的使用查询 ,使用@Param命名
    List queryStudent(@Param("studentName") String name);


    //按id排序
    List queryStudentOrderById();

    //按照name排序
    List queryStudentOrderName();

    //传入利用占位符特定参数查询
    List queryStudentOrderByColName(@Param("myname") String name,
                                             @Param("colName") String colName,
                                             @Param("tableName") String tableName);
}

StudentDao.xml:




    
    
    
    
        select id,name ,email,age from student where id=#{studentid}
    


    
        select id,name ,email,age from student where name =#{myname} or age=#{myage}
    


    
        select id,name ,email,age from student where name =#{p1} or age=#{p2}
    


    
        select id,name ,email,age from student where name =#{myname} or age=#{myage}
    


    
        update student set name=#{name},email=#{email} where id=#{id}
    



    
        select * from student order by id
    


    
    
        select * from ${tableName} where name=#{myname} order by ${colName} desc
    

 

 

测试类,MyTest2类:

package com.bjpowernode;

import com.bjpowernode.dao.StudentDao;
import com.bjpowernode.domain.Student;
import com.bjpowernode.utils.MybatisUtil;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;

import java.util.List;

public class MyTest2 {
    //${}占位符使用查询
    @Test
    public void testQueryStudent(){
        //获取SqlSession
        SqlSession session= MybatisUtil.getSqlSession();
        //获取dao代理
        StudentDao dao=session.getMapper(StudentDao.class);
        //调用方法  注意李四要加单引号
        List students=dao.queryStudent("'李四'");

        students.forEach(stu-> System.out.println("stu"+stu));
        //4.关闭SqlSession对象
        session.close();
    }
    //查询,按id排序
    @Test
    public void testQueryOrderById(){
        //获取SqlSession
        SqlSession session= MybatisUtil.getSqlSession();
        //获取dao代理
        StudentDao dao=session.getMapper(StudentDao.class);
        //调用方法
        List students=dao.queryStudentOrderById();

        students.forEach(stu-> System.out.println("stu"+stu));
        //4.关闭SqlSession对象
        session.close();
    }
    //查询,按name排序
    @Test
    public void testQueryOrderByName(){
        //获取SqlSession
        SqlSession session= MybatisUtil.getSqlSession();
        //获取dao代理
        StudentDao dao=session.getMapper(StudentDao.class);
        //调用方法
        List students=dao.queryStudentOrderName();

        students.forEach(stu-> System.out.println("stu"+stu));
        //4.关闭SqlSession对象
        session.close();
    }

    //传入多个参数
    @Test
    public void testQueryOrderByColName(){
        //获取SqlSession
        SqlSession session= MybatisUtil.getSqlSession();
        //获取dao代理
        StudentDao dao=session.getMapper(StudentDao.class);
        //调用方法
        List students=dao.queryStudentOrderByColName("李四","id","student");

        students.forEach(stu-> System.out.println("stu"+stu));
        //4.关闭SqlSession对象
        session.close();
    }
}

 测试结果1:

2.

 

3.

 

4.

 

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/861040.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号