本文是作者原创,版权归作者所有.若要转载,请注明出处.文章中若有错误和疏漏之处,还请各位大佬不吝指出,谢谢大家.
1.mybatis的底层是jdbc操作,我们来回顾一下,如下
public static void main(String[] args) { String url="jdbc:mysql://10.3.11.64:3306/pdzx?characterEncoding=utf8&useSSL=false&allowMultiQueries=true"; String user="pdzx_pro"; String password="cde35TGB3910"; String sql = " SELECT t2.id AS sectionId , t2.proj_id AS projId , t2.section_name AS sectionName " + "FROM b_proj_base_info AS t1 JOIN b_proj_section_info AS t2 ON t1.id=t2.proj_id " + "WHERE t2.proj_id=? AND t2.section_name LIKE CONCAT('%',?,'%')"; //连接数据库 try { Class.forName("com.mysql.cj.jdbc.Driver"); //建立连接 Connection conn = DriverManager.getConnection(url, user, password); //得到ResultSet结果集 PreparedStatement preparedStatement = conn.prepareStatement(sql); preparedStatement.setString(1, "0124569b738e405fb20b68bfef37f487"); //为第一个问号赋值 preparedStatement.setString(2, "标段"); //为第二个问号赋值 ResultSet resultSet = preparedStatement.executeQuery(); //遍历结果集 while (resultSet.next()) { int sectionId = resultSet.getInt("sectionId"); String projId = resultSet.getString("projId"); String sectionName = resultSet.getString("sectionName"); System.out.println(sectionId+"----->"+projId+"----->"+sectionName); } resultSet.close(); //释放资源 preparedStatement.close(); conn.close(); } catch (Exception e) { e.printStackTrace(); } }
运行以后的结果如下图:(我们可以和后面mybatis框架的结果验证一下)
2.下载mybatis源码并编译
我们先去github下载mybatis源码,我们就下载最新的master版本 如下:
下载完后解压到你的idea工作空间下,再打开,如图
点击ok,右键pom.xml,选择add as maven project:如图
等它加载完以后,我们发现这里报错:
没关系,这是一个maven插件,我们直接把它注释了就好.
(如果这里发现依赖下载不下来,可以删除项目中.idea文件夹和.iml文件,然后关闭项目,查看本地文件夹中是否已经删除,若已删除,可以重新按照上面的方法打开那个工程文件夹,然后我们利用idea的maven插件编译mybatis源码,,先clean,再install一下,如下图
它就会重新编译了)
3.我们直接在源码中写个demo测试一下mybatis是否可以正常使用
我们直接在test目录下建个自己的包,用于测试.如下图
这里我贴一下主要的代码,依次是mybatis环境配置xml,mapper目录下的用于写sql的xml文件,以及测试类
运行一下,我们可以看到结果如下图
我们可以看到,结果和原生jdbc的完全一致,至此,我们的mybatis源码编译完成.
为什么我们要编译源码呢,因为我们可以在编译好的源码上写我们自己的一些理解和注释,并将它们提交到github上,也为你的简历增添一丝光彩
本文编译完的源码已经传到github上,有需要的可以直接下载 地址是:https://github.com/lusaisai1019/mybatis-master.git
下面几篇博客我会深入mybatis底层源码,并写上我自己的注释,然后提交到github上.