- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
mybatis知识汇总
MyBatis汇总整理
对表的增/删/改(动态修改)/查(单表查询/多表查询/动态查询/多对一查询/一对多查询/延迟加载)/分页/配置文件优化/增加时获取主键/注解/sql冗余/批量类设别名
注意:.xml格式的文件中除了(properties和mapper标签中有resource,其余都没有)resource的属性值中路径有/和文件的格式后缀,其余的写的路径都是.分开,并且没有文件的格式后缀;
注意:.xml格式文件中5个特数字符及其转义字符:
主流框架主要对应作用:
MyBatis用于替代JDBC;
Struts2用于替代servlet;(springMVC也是此功能)
HIBER NATE用于替代dao,dao方法中查到结果集不用遍历直接返回结果集合;
Spring是将大家组合在一起;
MyBatis是一个半自动的ORM;
搭建MyBatis环境的一般步骤:
下载mybatis.jar包;
编写核心文件(连接数据库的configuration.xml):(注意先后顺序)
(配置打印日志信息;(注意:导log4j.jar包、配置文件)
(主要写driver、url、userName、password等信息;
(配置表与实体类映射关系的映射文件信息;
在model中创建与表对应的实体类;
在dao层中创建sql映射文件(表名+mapper.xml):主要写namespace、select中的id和sql语句(注意:sql语句中查询的列表要有别名,别名跟对应的实体类的属性名保持一致)
创建工具类:(主要实现获取sqlsession对象):
(获取configuration.xml文件相对于src的路径;
(通过Resource调用getResourceAsStream(String string)方法获取InputStream输入流;
(通过new SqlsessionFactoryBuilder调用build(InputStream inputStream)方法获取SqlsessionFactory对象;
④通过sqlSessionFactory类型的对象调用openSession()方法获取sqlSession对象;
测试类:通过工具类获取sqlsession对象,然后通过sqlsession对象调用selectList(String string,Object object)方法获取查询结果集即可,参数就是映射文件mapper.xml中的namespace+要执行的select中的id,增/删/改/查不同方法执行的时候,传递的string值不同;
在mapper.xml文件中写sql语句时要注意的事项:(parameterType如果确定参数是什么类型就写,如果不确定不写也可以,对于select语句resultType或resultMap两个中必须选择一个写)
新增语句:
标签名:insert;
需要设置parameterType类型;
表名后括号内写表中列明,values后括号内写实体类对应的属性名;
需要commit提交信息;
查询某一条记录语句:
标签名:select;
需要设置parameterType类型,需要设置resultType类型;
表名需要有别名,查询结果的列名需要有别名,别名就是实体类对应的属性名;
关键字模糊查询:
标签名:select;
需要设置parameterType类型,需要设置resultType类型;
表名需要有别名,查询结果的列名需要有别名,别名就是实体类对应的属性名;
模糊查询中内容:
like ‘%${参数名}%’ 或 concat(‘%’,#{参数名},’%’)等2中方法;
查询所有记录语句:
标签名:select;
需要设置resultType类型;
表名需要有别名,查询结果的列名需要有别名,别名就是实体类对应的属性名;
动态查询:
where+if:多条件动态查询:
对于多条件动态查询,不知道哪个条件是否不为null,那么就用whereif test=”” and+sql语句/if/where格式写最合适;
Set+if:多条件动态修改:
对于修改表中信息,不知道哪些信息不为空需要修改的时候,那么就用setif test=””sql语句/if/set格式即可;如下图所示:
Trim(相当于set/where)+if:多条件动态查询/修改:详情百度下;
Where+choose:多个条件中选择一个作为查询条件:无实际场景;
Foreach:为查询条件赋多个值:
注意:if条件中的test获取属性值与sql语句中获取属性值的写法是不同的,详情见下图:
修改语句:
标签名:update;
需要设置parameterType类型;
需要赋值的变量{}中写的是包装类中对应的属性名
文档评论(0)