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

Mybatis使用(2)----查询

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

Mybatis使用(2)----查询

实现增删改查功能 查询 1.StudentMapper接口
public interface StudentMapper {
    //查询所有学生信息
    List getAll();
    //根据学生id查询
    Student getById(Integer id);
    }
2.StudentMapper.xml



	<-- 查询所有学生信息
	    没有输入参数
	    输出类型为Student
	!-->
    
        select id,name,sex,birthday,grade,tid from student
    
    <-- 根据指定id查询学生信息
	   输入参数:paramenterType 类型为Integet(int)
	   基本数据类型和String可以省略不写。
	    输出类型为 Student(在核心配置类中指定包,不需要写全限定名)
	!-->
    
   select id,name,sex,birthday,grade,tid from student where Name like "%${name}"
 

存在问题:sql注入

1.2测试
 @Test
    public void testGetByName(){
        String s=""or "1==1 ";
        List list = studentMapper.getByName(s);
        list.forEach(student -> {
            System.out.println(student);
        });
    }
1.3结果

sql语句直接拼接输入字段,将所有结果查询出来

==>  Preparing: select id,name,sex,birthday,grade,tid from student where Name like "%"or "1==1 "
==> Parameters: 
<==    Columns: id, name, sex, birthday, grade, tid
<==        Row: 3300, 张三, 0, 1999-01-01, 一年级, 1
<==        Row: 3301, 李四, 1, 1998-01-01, 二年级, 2
<==        Row: 3302, 王五, 1, 1997-01-01, 三年级, 1
<==        Row: 3303, 赵六, 0, 1998-08-01, 二年级, 2
<==        Row: 3304, 钱七, 1, 1996-01-01, 四年级, 3
<==        Row: 3305, 周八, 0, 1995-01-01, 五年级, 1
<==      Total: 6
Student{id=3300, name='张三', sex=0, birthday=Fri Jan 01 00:00:00 GMT+08:00 1999, grade='一年级', tid=1}
Student{id=3301, name='李四', sex=1, birthday=Thu Jan 01 00:00:00 GMT+08:00 1998, grade='二年级', tid=2}
Student{id=3302, name='王五', sex=1, birthday=Wed Jan 01 00:00:00 GMT+08:00 1997, grade='三年级', tid=1}
Student{id=3303, name='赵六', sex=0, birthday=Sat Aug 01 00:00:00 GMT+08:00 1998, grade='二年级', tid=2}
Student{id=3304, name='钱七', sex=1, birthday=Mon Jan 01 00:00:00 GMT+08:00 1996, grade='四年级', tid=3}
Student{id=3305, name='周八', sex=0, birthday=Sun Jan 01 00:00:00 GMT+08:00 1995, grade='五年级', tid=1}
2. ‘ #{} ’

    
        select 
        from student
        where name like concat("%",#{name},"%")
    
2.1测试
@Test
    public void testGetByNameGood(){
        String s=""or "1==1 ";
        String ss="%五";
        List list = studentMapper.getByNameGood(s);
        List list1 = studentMapper.getByNameGood(ss);
        list.forEach(student -> {
            System.out.println(student);
        });
        list1.forEach(student -> {
            System.out.println(student);
        });
    }
2.2结果
==>  Preparing: select id,name,sex,birthday,grade,tid from student where name like concat("%",?,"%")
==> Parameters: "or "1==1 (String)
<==      Total: 0
==>  Preparing: select id,name,sex,birthday,grade,tid from student where name like concat("%",?,"%")
==> Parameters: %五(String)
<==    Columns: id, name, sex, birthday, grade, tid
<==        Row: 3302, 王五, 1, 1997-01-01, 三年级, 1
<==      Total: 1
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1014886.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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