刚刚看完ibatis的使用说明,对于ibatis的使用有了一定的认识,知道sqlmapping的使用是通过设置xml,然后调用相应的方法完成的,对于每次调用不同的sql语句,都需要设置xml文件,然后在程序中对应相应的语句。
但是对于复合查询语句,就不知道怎么处理,因此现在需要对于此处学习一下,然后学习存储过程,触发器调用。
执行存储过程的心得:
数据库中的返回结果集的字段最好和对应的bean的字段一样,如果遇到不一样的地方,最好用别名代替,这样可以保证返回的数据在bean对象中显示出来,我们对应数据库表的bean,他的每个属性都对于数据库的某个字段,当字段不同时,就无法将该值返回到bean中,这一点很重要!
每个bean不一定要和数据库的某个表匹配,而是和你的查询结果匹配就行了,
对于每次的查询结果,返回的结果应该是bean对象,而对于外面的数据获取,对于单个记录,可以直接获取对象,对于多个则最好放到相应的容器中,如list,map等。
用queryForMap中用到了最后的String参数是一个要返回的字段属性,为什么是这样还没有理解
对于用map返回的对象,已经得到东西,但是还需要进一步了解
Map对象的值可以是整个Employee对象,也可以是Employee对象的另一个属性,属性的名称由第二个参数valueProperty指定。
例如,您可能只是需要一个Map对象,用员工号作为key值,员工姓名作为value值。不要把它和用Map作为结果对象的概念混淆。
这个方法可以使用Java Bean和Map(或基本类型的包装类,但不可能这样用)作为结果对象。
对于动态sql问题,ibatis已经有了很好得解决办法,不用把sql作为动态的参数传入,也不用if-else进行sql的拼接,xml文件的处理很成熟的