MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集
首先我们得配置一个mybatis连接数据库所需的配置文件,写上要连接的数据库名字和自己的用户名,密码等等
写完上面的操作之后就可以在mybatis的配置文件中加载这个文件了,并可以通过${}来导入信息
然后通过settings来设置日志工厂,也可以设置数据库中下滑线书写转换成Java的驼峰书写,虽然是默认为true,但是为了可读性,建议写上
为了在后续的Mapper.xml的书写方便,一般情况会把对象起一个别名,避免写多余的部分
每一个mapper.xml都需要在mybatis核心配置文件注册
每一个mybatis 的应用都是以一个 SqlSessionFactory 的实例为核心的。SqlSessionFactory 的实例可以通过 SqlSessionFactoryBuilder 获得。而 SqlSessionFactoryBuilder 则可以从 XML 配置文件或一个预先配置的 Configuration 实例来构建出 SqlSessionFactory 实例。我们可以定义一个公共类来实现这个方法
然后再连接上数据库
现在我们就可以来书写一个接口来实现我们要实现的方法,例如查询数据库中所有的数据
然后在映射文件中书写相应的SQL语言,然后就可以编写测试方法了
插入、更新、删除都分别有不同的标签<insert>、<update>、<delete>需要提交事务
而且当我们分页的时候,并且数据库的用户名不是下滑线的时候可以使用resultMap的方式来书写
连表查询可以有两个方式:一个是嵌套查询,另一个是按结果集查询,先定义两个类,然后学生类关联老师类,定义两个获取学生的方法
通过查询来嵌套处理,先将两个表里面的数据查询出来
按照查询嵌套来处理,然后再测试
通过结果来嵌套处理
两个结果都是一样的
当你从前端获取数据为空时,可以像JDBC那样判断是否加上次条件
但是也要加上一个恒定值,这样会很麻烦所以就会用上<where>标签,where标签默认会删除and和or标签
当你发现这个<if>标签要被大量使用时,你可以将它写在<sql>标签中,然后用<include>来引入即可避免了代码的重复性
还有一个类似switch的标签<choose>,跟<if>标签的效果类似用来判断这个数据是否有值,<when>相当于switch的case,<otherwise>相当于switch中的default
还有一个<foreach>标签相当于数据库中的in在某个范围中,然后再进行测试
还有一个<set>标签跟where标签差不多,它会默认删除逗号