
No 停止你的这种想法 JDBC是基础中的基础, 重中之重, mybatis只是众多框架中,目前比较流行的一个框架
学好了JDBC你可以自己开发一个类似于Mybatis的持久层框架 很多公司也是使用的自己内部的框架, 所以你学好了JDBC就能迅速理解和上手各种各样的持久层框架
单机程序需求比较简单, 主要还是使用JDBC
JDBC是性能卓越, 速度更是一骑绝尘 其他持久层框架简化了开发的效率 , 但是执行中往往需要解析XML ,注解等,中间步骤, 速度上较慢 所以很多时候,为了提升性能,会直接使用JDBC开发
JDBC 简单,几天就能上手, 学完就做个小项目 再学习mybatis, 你这样才能体会到mybatis的优点, 代码量减少很多, 开发效率杠杠的
你问的好模糊,spring可以进行编程式事务,编程式事务不就是jdbc的6步事务嘛,你spring也可以做jdbc的事务,你扯上mybatis干嘛,你是不是要spring+mybatis整合,问在配置文件中如何配置事务呢
通过JDBC程序找到使用原生态的JDBC开发程序当中存在的问题。
通过学习mybatis,mybatis是如何解决这些问题的。
mybatis是个框架,所以我们要先了解mybatis的架构,然后做mybatis的入门程序,不是一个简单的helloworld。
实现用户的查询,添加,修改。
dao是我们持久层的接口,mybatis开发dao两种方法。
1原始的dao开发方式,就是dao的接口和dao的实现都需要编写
此处仅描述问题处理方法,关于mysql、mybatis的内容不在此赘述。
因为项目需要,需要在mybatis同个标签中执行多条sql语句。如下:
寻思着,在mysql中同时执行多条语句时,mysql是一条一条执行的。如果我一次性向mysql发送多条语句,它应该也会这么执行的。
我承认一开始想的太简单了,直接这样做的结果,是会在jdbc驱动层面报出语法错误异常,程序无法执行下去。
debug后发现,从mybatis拼装sql,到语句传入jdbc驱动,语句都是正常的,但是在mysql驱动验证sql合法性时,sql被截断,它认为一次性发过去的多条sql是不合法的。
看了网上很多说法,一说是mybatis本身不支持;一说是mysql驱动不支持。困扰很久,没能解决,后为了项目进度,暂时将sql分开执行了。
---------------------------------------------------------allowMultiQueries=true----------------------------------------------------------------------------------
但今天,有高人,跟我说,这样做不行,是因为你没有让mysql驱动开启批量执行sql的开关。
怎么开启呢?在拼装mysql链接的url时,为其加上allowMultiQueries参数,设置为true,如下:
加了参数后,我又将mybatis配置文件改了回去,测试一下,执行成功。
这里记录一下,希望对看到的人,有所帮助。
附MYSQL 多表更新 语句
以上就是关于java不学jdbc直接学mybatis可以吗全部的内容,包括:java不学jdbc直接学mybatis可以吗、spring整合mybatis中程序中如何编程式事务、mybatis解决jdbc编程的哪些问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)