gistfile1.txt Mybatis的执行都是依靠映射文件中的语句进行数据库操作,通常一个持久类的配置文件对应一个接口,接口中的方法来自配置文件的元素的id值,传入的值来自元素的parameterT
Mybatis的执行都是依靠映射文件中的语句进行数据库操作,通常一个持久类的配置文件对应一个接口,接口中的方法来自 配置文件的元素的id值,传入的值来自元素的parameterType,返回的值来自元素的resultType。常用的元素如下: 1.select,映射查询语句 2.update,映射更新语句 3.insert,映射插入语句 4.delete,映射删除语句 5.sql,可被其他语句引用的可重用语句块 6.cache,给定命名空间的缓存配置 7.resultMap,最强大的功能,可以根据自己的需要返回数据,而不必返回全部,用来描述如何从数据库结果集中加载对象。 1.select元素介绍 其中#{id}表示的是预处理语句,等同于prepareStatement.setInt(1,id),paramterType表示传如的参数,resultType 表示返回的类型,如何返回是集合,那么则是集合中的类型。对于查询语句,如果涉及到多个条件,可以在POJI中定义构造函数 在构造函数中加入要传入的参数,之后在select语句中直接传入这个类即可。之后查询条件会自动去寻找传入对象中的各个属性值 ,然后进行匹配。 2.insert元素介绍insert into tb_user(name,sex,age) values(#{name},#{sex},#{age}) 其中useGeneratedKeys为true表示采用主键自动生成,这跟数据库创建表的时候有关,要数据库表的支持。 3.update元素介绍update tb_user set name=#{name},sex=#{sex},age=#{age} where id=#{id} 上述中传用了一个User对象,而查询语句通过id进行更新,那么语句会匹配User对象中的各个属性值,从而进行修改。 4.delete元素介绍delete from tb_user where name=#{name} 上述中传入一个String类型的参数,根据参数进行删除。 ResultMap的使用 ResultMap主要是运用在数据库表的列名和POJO对象的属性不一样时使用,比如数据库列名为tb_name,而对应的POJO属性为 name,那么在返回的时候因为匹配不到所以返回为空,那么有2种解决方法。 1.在sql语句中进行匹配,如: 上述语句中将数据库的列名为user_id附给User对象的id属性,列名为user_name附给User对象的userName属性。 2.通过ResultMap进行返回对象的设置。如:上述代码自己定义了一个resultMap,id为userResultMap,将数据库中的列名为tb_id匹配到com.vo.User对象的id属性。 其他以此类推,其中元素id表示主键,元素result表示正常列。 之后在查询语句中通过resultMap进行引用。 这样就算数据库列名与POHO对象的属性不一样也可以进行返回。