java.sql.SQLSyntaxErrorException

新手上路,请多包涵
问题遇到的现象和发生背景

在进行mybatis配置和编写测试时遇到的问题,一点击运行就报错

问题相关代码

下面是测试类的代码

 @Test
    public  void findmany() throws IOException
    {
        InputStream is= Resources.getResourceAsStream("mybatis-config.xml");
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
        SqlSession sqlSession =sqlSessionFactory.openSession();


        Map<String,Object> params = new HashMap<>();
        params.put("name", "张三");
        params.put("major", "");

        List<Student> student=sqlSession.selectList("com.javaee.pojo.Student.findmany",params);
        System.out.println(student);

        Map<String,Object> params2 = new HashMap<>();
        params2.put("name", "");
        params2.put("major", "计算机");

        student=sqlSession.selectList("com.javaee.pojo.Student.findmany",params2);
        System.out.println(student);

        Map<String,Object> params3 = new HashMap<>();
        params3.put("name", "");
        params3.put("major", "");

        student=sqlSession.selectList("com.javaee.pojo.Student.findmany",params3);
        System.out.println(student);

        sqlSession.close();
    }

下面是mapper文件的有关代码


    <select id="findmany"
            parameterType="map"
            resultType="com.javaee.pojo.Student">

        select * from students where name like concat('%',#{name},'%')  major like concat('%',#{major},'%')

    </select>

Student类的部分有关代码

public class Student {
    private int id;        //主键id
    private String name;      // 姓名
    private String major;     // 专业
    private String sno;        // 学号

    public String toString()
    {
        return "Student{"+"id="+id+",sno='"+sno+'\''+",name='"+name+'\''+",major='"+major+'\''+'}';



    }

运行结果及报错内容

 title=

阅读 1.4k
2 个回答

major like 前面少了个and

select * from students where name like concat('%',#{name},'%') and major like concat('%',#{major},'%')

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题