博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
学习myBatis - 如何配置myBatis
阅读量:7044 次
发布时间:2019-06-28

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

这篇文章主要学习如何配置myBatis。

要学习新东西要讲究方法,要从三个层面去理解它:它是什么(what),为什么要学它(why),怎么用它(how)。有了学习方法学习的效率才高。

1、myBatis是什么(what)

  myBatis的官方用户指南上面是这样写的:MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除 了几乎所有的 JDBC 代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML 或注解用于配置和原始映射,将接口和 Java 的 POJOs(Plan Old Java Objects,普通的 Java 对象)映射成数据库中的记录。

  说通俗一点就是myBatis可以代替原来的JDBC对数据库进行一系列操作。

2、为什么要学myBatis(why)

  有人说我可以用JDBC实现我所有想对数据库进行的操作,为什么还要学myBatis?之所以这样说,那是因为你还没有碰见复杂的操作:当你需要从多个表中查询数据并返回一个对象,这时候你就会领悟到myBatis强大的地方。(当然myBatis有很多强大的地方,这只是简单的举一个例子。)

  另外有很多公司在招软件工程师的时候都要求能熟练使用myBatis,比如阿里巴巴、华为等。

3、怎么使用myBatis(how)

  好了废话不多说,来一起看看怎么去使用它。

  要使用它得先知道怎么去配置它,能够让它顺利的运行起来。那么这篇文章就主要简单的说明怎么正确的配置myBatis。

  新建一个普通Java项目,项目结构如图:

  

 

  首先从myBatis的主要配置文件(conf.xml)说起

  当sql语句比较简单的时候采用注解的方式更方便,这时候就不用再去写xml文件了:直接在接口方法上面用注解写上需要执行的sql语句。  

 

  然后是配置的映射文件UserMapper.xml。只为说明问题,所以就只写了一条语句。

  该映射文件绑定的命名空间是 com.tony.mapper.UserMapper,意味着程序可以从直接调用该接口中的方法从而返回自己想要的Java对象而不需要强制转换。

  

  接下来是UserMapper.java接口,这个接口最主要的功能就是方便程序调用映射文件中的sql语句,免去了一些不必要的代码,使你的代码看上去更加简洁。

1 package com.tony.mapper; 2  3 import org.apache.ibatis.annotations.Select; 4  5 import com.tony.bean.User; 6  7 public interface UserMapper { 8      9     /**10      * 方法名必须与映射文件中的id一致!11      * 方法名上面注释的那条语句就是用注解的实例12      * @param id 需要查找的id13      * @return 直接返回User对象!14      */15 //  @Select("select * from userinfo where id=#{id}")16     public User selectUserById(int id);17     18 }

  与映射文件绑定的接口里面的方法名称必须和映射文件中的id一致,否则将会报错。另外,通过注解实现的方法我也写了,就是方法名上面的那一行代码。

  

  最后是一个自定义的User类,User类的对象对应着数据库中的一条记录,每一个属性对应着一个字段,并且只有getter和setter方法;

1 package com.tony.bean; 2  3 public class User { 4     private String username; 5     private String pwd; 6     private String id; 7      8  9     public String getId() {10         return id;11     }12     public void setId(String id) {13         this.id = id;14     }15     public User() {16     }17     public User(String username, String password) {18         this.username = username;19         this.pwd = password;20     }21     public String getUsername() {22         return username;23     }24     public void setUsername(String username) {25         this.username = username;26     }27     public String getPwd() {28         return pwd;29     }30     public void setPwd(String pwd) {31         this.pwd = pwd;32     }33     @Override34     public String toString() {35         return "User [username=" + username + ", password=" + pwd + "]";36     }37     38 }

 

  好了,现在myBatis的基本配置基本上就配好了。下面我们在Main.java中进行测试:

1 package com.tony.main; 2  3 import java.io.InputStream; 4 import org.apache.ibatis.session.SqlSession; 5 import org.apache.ibatis.session.SqlSessionFactory; 6 import org.apache.ibatis.session.SqlSessionFactoryBuilder; 7  8 import com.tony.bean.User; 9 import com.tony.mapper.UserMapper;10 11 public class Mian {12     public static void main(String[] args) {13         14         //加载myBatis配置文件15         InputStream is=Mian.class.getClassLoader().getResourceAsStream("conf.xml");16         17         //从配置文件中构建一个SqlSessionFactory18         SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(is);19         20         //打开一个Session会话21         SqlSession session=factory.openSession();22         23         //通过session获得一个mapper24         UserMapper mapper=session.getMapper(UserMapper.class);25         26         //通过mapper可以直接调用接口中的方法,并且不需要强制转换!!27         //这是一个与不绑定namespace配置的一个非常大的区别和优势。28         User u1 = mapper.selectUserById(1);29         User u2 = mapper.selectUserById(3);30         31         System.out.println(u1.toString());32         System.out.println(u2.toString());33 34         session.close();35         36     }37 }

  运行结果为:

  与表中记录吻合:

  

  

  好了,myBatis的比较常用的配置基本上就这些:主配置文件,映射文件,与映射文件绑定的接口。

  

  最后有几点说明:

  1、这篇文章主要讲的是如何简单配置myBatis,所以就没有对配置文件中的所有配置项进行说明。如果大家需要详细了解各个配置项的作用,我推荐大家去看myBatis的官方用户指南,这里面说的很详细。

  2、因为在代码文件中的注释写的比较详细,所以在文章中就没有用过多的篇幅去重复了。

  3、这篇文章完全是笔者自己在学习myBatis时总结的经验,不免有错误和疏漏的地方,还望大家指正。

  4、本文是属于搭建Spring+Spring MVC+ myBatis(SSM)框架的一部分,会在后面持续更新。

  相关博客:

 

转载于:https://www.cnblogs.com/liuxiaomian/p/framework_mybatis_configuration.html

你可能感兴趣的文章
MobaSSH SSH server for Windows - Download Home Edition
查看>>
文章之间的基本总结:Activity生命周期
查看>>
数据库sqlserver2008登陆名密码登陆不了怎么办?
查看>>
projecteuler---->problem=19----Counting Sundays
查看>>
CSS鼠标样式整理
查看>>
移动加密那点事儿_值存储加密
查看>>
Unity3D之空间转换学习笔记(三):3D数学
查看>>
jquery.lazyload.js图片延迟加载
查看>>
Atitit.异步编程 java .net php python js 对照
查看>>
手机网站和PC网站兼容的响应式网页设计
查看>>
设计与实现模块管理系统基本功能定义自己(18--设计模块附件[1])
查看>>
PHP大小写是否敏感问题
查看>>
七天学会ASP.NET MVC(七)——创建单页应用
查看>>
struts2由<s:tree>要么dtree小工具 建立树
查看>>
[C#] zdbviewcs: 跨平台数据库查看器。支持SqlServer、Oracle、MySql等数据库
查看>>
如何实现Web聊天
查看>>
使用CLion
查看>>
Tomcat下JSP、Servlet和JavaBean环境的配置
查看>>
给phpcms v9加入一个主题radio无线电button,它可反复使用,以创建不同的专题部分内容编辑器,添加一个主题来定义自己的领域...
查看>>
UVa 514 Rails(经典栈)
查看>>