欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

mysqlmybatis简介

时间:2023-07-08

Mybatis是开源的框架,主要是解决JDBC中硬编码和操作繁琐这类问题

若不连接idea和数据库,则会出现不识别表的情况,但对程序运行影响不大

Mapper代理开发:

步骤2中只要在resources里设置与java中一样的目录即可

步骤4的代码实现

Usermapper usermapper = sqlsession.getMapper(Usermapper.class);List users = usermapper.selectAll();

Mybatis核心配置信息

environmens:配置数据库连接环境信息,可以配置多个environment,通过default属性切换不同的

类别名(typeAliases):可以简化包名

注意xml的顺序要按照官方文档来

配置文件完成增删改查

 映射最好使用resultmap进行注释

注意: #里面为大括号而不是括号:参数占位符有#{}(会替换为?,可以防止sql注入),还有${}(会出现sql注入)。一般都使用#{},在表名或者列名不固定的情况下可以使用${}

parameterType一般情况下可以省略掉。

特殊字符的处理:1、转义字符。2、CDATA区

条件查询

 参数:1、散装参数用param来修饰,2、对象参数:对象的属性名称要和参数占位符名称一致

3、 Mapper的代理对象

//散装参数 String companyName = "kuaile"; companyName ="%"+companyName+"%"; //对象参数 Brand brand1 = new Brand(); brand1.setCompanyName(companyName); //Mapper接口饿代理对象 Map map = new HashMap(); map.put("companyName",companyName);

模糊查询用like,前面需要处理参数

String companyName = "kuaile"; companyName ="%"+companyName+"%";

 在实际中并不是所有条件都会用上,在此需要使用动态条件查询

 

 条件之间使用and会导致若中间有null就会出错, 在此可以使用1、一个恒等式来解决(图中为1=1)2、使用mysql中的标签代替where关键字

 单条件的动态查询

添加 

这里涉及mysql事务的问题,需要提交事务,否则会发生回滚(或者在获取对象时设置为自动提交)

SqlSession sqlSession = sqlSessionFactory.openSession(true);

 

 

修改

 

 用int则会返回受影响行数

 在此要注意最后一条if语句不用逗号

删除

 

 mybatis会将数组参数封装为一个Map集合,默认:array = 数组,使用@Param注解改变map集合的默认key的名称

参数传递 

有多个参数时,会封装为Map集合

注解

 

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。