博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MyBatis与MySQL交互
阅读量:6476 次
发布时间:2019-06-23

本文共 3884 字,大约阅读时间需要 12 分钟。

MyBatis是我接触到的第一个框架,下面谈一谈我第一次使用MyBatis时的感悟。


首先是一些准备工作

  • 下载相关的jar包。到GitHub上就行,上面有全面和完整的jar文件

  • 在eclipse上安装MyBatis Generator插件(一款高效的ORM框架中的代码生成插件)

  • 创建一个mybatis-config.xml文件,作用相当于一个全局性的文件,处理数据库连接和今后的mapper关系。

  • 创建一个generatorConfig.xml文件,配置上连接的数据库的一些信息。和将要操作的bean的包啊,名称啊等等数据

  • 然后就是生成bean层,里面会生成一个XXXXmapper.xml.在mybatis-config.xml中进行添加就可以了。

  • 最后就是使用mybatis的api在Servlet文件中对数据库进行操作了。

然后是小实例咯

处理相关的各种文件之间的关系,真的是一件令人感到头疼的事,不过还好,这里有一个比较清晰的脉络,记住就好了。

我的目录结构如下:
这里写图片描述
首先是创建一个mybatis-config.xml文件:

再就是映射关系的配置文件的创建,我的如下:generatorConfig.xml

然后在那个映射文件orm/UserinfoMapper.xml中添加以下相关的设置即可。这里面大有文章的,其中比较重要的就是

mappe的namespace是我们将在Servlet中引用的第一个参数的命名空间,搭配着标签select中的id就可以唯一的确定是使用的哪一个sql语句。

而resultMap是相关于数据库中的表结构来实现的。我们通常会把值这个作为CRUD的标签语句的parameterType的属性值。最后在自己的CRUD标签体内写上需要的sql语句就可以了(如果需要外界的参数,就使用#{values}来进行占位就可以了。

再就是编写测试代码了,这里我使用的是Servlet来进行操作。如下:

package test;import java.io.IOException;import java.io.InputStream;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;import orm.Userinfo;/** * Servlet implementation class TestMyBatis */@WebServlet("/TestMyBatis")public class TestMyBatis extends HttpServlet {
private static final long serialVersionUID = 1L; /** * Default constructor. */ public TestMyBatis() { // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub response.getWriter().append("Served at: ").append(request.getContextPath()); try { String resource = "mybatis-config.xml"; InputStream is = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is); SqlSession sqlSession = sqlSessionFactory.openSession(); Userinfo userinfo = sqlSession.selectOne("orm.UserinfoMapper.selectAllUserinfo", 1); System.out.println(userinfo.getUsername()); System.out.println(userinfo.getPassword()); sqlSession.commit(); sqlSession.close(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub doGet(request, response); }}

结果在Eclipse的控制台上就可以看到这样的一句话了。

这里写图片描述可能是由于本人点击了两次,所以出现了重复的数据结果。

小总结

看着上面的代码感觉是有点凌乱,那我还是对每一步来点总结好了。

  • 导包(mybatis的jar,mysql的jar。统统的拷贝到项目的lib目录下)
  • 写Mybatis的配置文件,作用就是连接数据库的信息,以及映射的关系。

  • 写映射文件,里面的内容包括数据库信息,表信息,以及将要生成的包的名称等等,可以在标签中轻松的读懂。

  • 然后是将生成的代码放到src目录下,将里面的xxxxmapper.xml文件在之前下创建的mytais-config.xml文件中进行关联。

  • 最后就是创建测试的Servlet了,在doGet或者doPost方法中借助于MyBatis的api完成相应的数据操作。这样就算是大功告成了。

其中的关键点,就在于

  • 配置文件的写法
  • Mybatis的Api的用法
  • 各种ORM关系的配合等等。
你可能感兴趣的文章
leveldb学习:DBimpl
查看>>
打印图片
查看>>
SHOW CREATE DATABASE Syntax
查看>>
rsync常见问题及解决办法
查看>>
MySQL日期 专题
查看>>
C#中禁止程序多开
查看>>
分布式缓存Redis使用以及原理
查看>>
Activity竟然有两个onCreate方法,可别用错了
查看>>
Linux经常使用命令(十六) - whereis
查看>>
插件编译 版本问题
查看>>
android中TextView的阴影设置
查看>>
core dump相关
查看>>
Linux五种IO模型
查看>>
Bootstrap技术: 模式对话框的使用
查看>>
小知识,用myeclipes找jar
查看>>
in-list expansion
查看>>
设计原则(四):接口隔离原则
查看>>
基于react的滑动图片验证码组件
查看>>
iOS快速清除全部的消息推送
查看>>
java单例模式深度解析
查看>>