userInfo是你的查询语句所在的sqlMap的namespace。
你看看Users.xml配置文件的前几行,应该有个 sqlMap标签,里面有个属性 namespace="userInfo"。
这样如果在其他sqlMap文件里也有一个id为selectUserById的语句,这段代码执行的依然是namespace为userInfo的sqlMap里的语句。
userInfo是和你User.xml配置文件中的命名空间(namespace)相对应的,如果没有命名空间可以不写直接queryForObject(“selectUserById”,id).......
在配置文件中,应该有一个namespace(命名空间)的东西,ibatis会根据"命名空间.SQL语句编号"去定位SQL语句。
同一个命名空间中,不能有重复的SQL编号,而不同的命名空间中,就可以重复。如A命名空间中可以有selectUserById的编号,B命名空间中也可以有,但A命名空间中就不能再有selectUserById了。