JavaEE开发框架SSM 007Mybatis(一)
Mybatis与Hibernate类似,也是一种数据库ORM工具,但是比后者灵活性更强,SQL语句定制性高,易于维护,便于优化。
Mybatis工作原理
通过读取配置文件,可以获取mapper,与Dao接口相对应
SqlSessionFactory用于生成SqlSession对象,SqlSession用于数据库连接。
基本查询操作实例
创建实体类
创建mapper.xml文件
mapper内部代表是映射条目,namespace代表对应的映射接口的位置,select代表是一条查询语句,paramType代表输入参数,resultType是返回的类型。#{id}代表占位符,相当于?
创建Mybatis的核心配置文件:
environments代表数据库环境,配置数据库连接池,mapper配置的是mapper.xml的配置文件路径。
测试:
先将核心配置文件通过Resource读取成输入流,再通过SqlSessionFactoryBuilder创建SqlSessionFactory实例,使用SqlSessionFactory实例获取SqlSession数据库连接,发送对应的数据库操作接口位置和参数信息即可。
基本模糊查询
在mapper配置文件中添加模糊查询语句:
'%${value}%' 这种写法无法防止Sql注入,可以替换成:
使用concat方法配合concat('%', #{value}, '%')可以达到模糊查询目的的同时,防止注入
测试:
插入数据
向mapper中添加查询配置:
parameterType是全类型名称,在语句中使用的占位符完全与传入的参数对应。返回的是影响的行数。
测试:
直到sqlSession的方法commit()执行以后才会提交插入数据操作。
更新数据
配置更新语句:
操作输入类型仍然是POJO的全路径,对应的字段会字段映射。
测试:
同样,直到commit才会提交语句执行。
删除操作
配置删除操作语句:
测试:
同样,也需要commit(截图中未显示)才能提交执行代码
小结:
主要学习了基于的增删改查操作,先配置核心配置文件mybatis-config.xml,让数据源配置好,然后配置相关的mapper文件,里面充斥着各种数据库操作语句,好在mybatis会为我们自动映射字段,简化了开发难度。使用的时候,先使用Resource将核心配置文件读取为数据流,然后使用SqlSessionFactoryBuilder来构造SqlSessionFactory,用SqlSessionFactory产生数据库连接Sqlsession,当执行插入,删除,修改操作时,需要执行commit才能真正提交执行,而且不要忘记关闭sqlSession连接。