mysql mybatis简介

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

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

Mapper代理开发:

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

步骤4的代码实现

Usermapper usermapper = sqlsession.getMapper(Usermapper.class);
List<User> 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>标签代替where关键字

 单条件的动态查询

添加 

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

 SqlSession sqlSession = sqlSessionFactory.openSession(true);

 

 

修改

 

 用int则会返回受影响行数

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

删除

 

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

参数传递 

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

注解

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值