封装mybaits的结果
ResultType
ResultType结果类型,sql语句执行完毕之后,转换的Java对象,但是Java的类型是任意的,只要能够对应结果的参数即可,比如我们对表查询一个student对象,既有姓名,email和电话等等,而我们使用另外一个people类进行接受,但是people仅仅有姓名和电话,这样仍旧可以接受,只要参数名称类型对应即可
mybaits执行sql语句,mybaits调用类的无参构造函数,创建对象,mybaits把resultset指定列值付给同名的属性
我们返回的people名称,但是执行的是查询student表格,而student表格还是拥有好多的其他的people没有拥有的属性,但是还是可以进行转换
1 | <select id="selectPeople" resultType="com.zss.pojo.People"> |
返回简单类型
比如我们查询列数,则可以使用int来进行接受
1 | <select id="selectCount" resultType="int" > |
1 | public static void main( String[] args ) throws IOException { |
自定义别名
我们在resultType=”com.zss.pojo.People”中有时候会很长,而且在多个之中可能都要同时用到,那么我们可以在主配置文件中自定义别名
1 | <!--自定义别名--> |
但是上面的这种方式我们使用多了就容易造成混淆,所以我们可以采用将包名提前注释的方式,这样我们就可以在ResultType中使用类名
1 | <!--提前说明包名--> |
1 | <select id="selectStudent" resultType="Student"> |
查询返回Map
但是不建议使用map,map由于其中的key能重复,那么当我们使用map的时候,最多仅仅查询一行数据
resultMap
结果映射,指定列明和Java对象属性的对应关系
- 自定义列值赋值给哪一个属性
- 当你的列名和属性名不一样时
1 | <!--定义resultmap |
当然我们也可以在sql查询的时候,使用as方法直接将将值给予转换
模糊查询
方式1
1 | public static void main( String[] args ) throws IOException { |
1 | <select id="selectLikeStudent" resultType="com.zss.pojo.Student" > |
方式2
在mybaits的执行语句中进行拼接
1 | select * from student where name like % #{name} %; |