凡铁游戏提供最新游戏下载和手游攻略!

MyBatis介绍及入门示例

发布时间:2024-10-15浏览:59

MyBatis 是一个优秀的持久层框架,支持自定义SQL、存储过程和高级映射。 MyBatis 消除了几乎所有的JDBC 代码以及设置参数和获取结果集的工作。 MyBatis 可以通过简单的XML 或注释来配置和映射原始类型、接口和Java POJO(普通Java 对象)到数据库中的记录。

mybatis的下载可以通过github获取,地址:https://github.com/mybatis/mybatis-3

实例准备

为了方便理解,示例使用eclipse加mysql的普通项目进行说明。

数据库以用户为例进行演示。在mysql数据库中创建用户表。其用户结构及数据内容如下:

/*用户表*/DROP TABLE IF EXISTS `user`;CREATE TABLE `user` ( `id` bigint(20) NOT NULL AUTO_INCRMENT COMMENT '用户号', `username` varchar(20) DEFAULT NULL COMMENT '用户名' , `password` varchar(20) DEFAULT NULL COMMENT 'password', PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;插入到`user`(`id`,`用户名`,`密码` ) 值(1,'演示','123456');

在eclipse中创建一个java项目。目录结构如下:

com.example.mybatis.config:用于存放mybatis的配置文件

com.example.mybatis.entries:用于存放对应用户表对应的实体类

com.example.mybatis.mappers:用于存放mytabtis对应的映射文件

test:用于存储对应的测试用例

通过github下载mybatis,并将mybatis-x.x.x.jar、log4j以及对应的数据库类型驱动放在lib目录下,作为项目环境的依赖jar。

创建并配置MyBatis资源配置文件

在com.example.mybatis.config 中创建一个名为mybatis-config.xml 的文件。文件内容如下:

?xml 版本='1.0' 编码='UTF-8' ?

文件中的driver、url、username、password根据实际情况配置。

为配置文件编写测试用例,测试配置信息是否正确。测试用例代码如下:

包com.example.mybatis.config;导入静态org.junit.Assert.*;导入java.io.IOException;导入java.io.InputStream;导入org.apache.ibatis.io.Resources;导入org.apache.ibatis .session.SqlSessionFactory;导入org.apache.ibatis.session.SqlSessionFactoryBuilder;导入org.junit.Test;公共类MybatisConfigTest {@Testpublic void test() 抛出IOException {String resource='com/example/mybatis/config/mybatis- config.xml';InputStream inputStream=Resources.getResourceAsStream(resource);SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);assertNotNull(sqlSessionFactory);}}

创建用户实体类

在com.example.mybatis.entries目录下创建用户实体类文件:User.java。

package com.example.mybatis.entries;/** * 用户实体类* @author root * */public class User {private Long id;private String 用户名;private String 密码;public Long getId() {return id;}public void setId(Long id) {this.id=id;}public String getUsername() {返回用户名;}public void setUsername(String username) {this.username=用户名;}public String getPassword() {返回密码;}public void setPassword(String password) {this.password=密码;}@Overridepublic String toString() {return '用户[id=' + id + ', 用户名=' + 用户名+ ', 密码=' + 密码+ ']' ;}}

创建针对用户表实施的映射文件

在com.example.mybatis.mappers 目录中创建user.xml 文件。

?xml version='1.0'encoding='UTF-8' ?select * from user where id=#{id}

将创建好的user.xml添加到mybatis配置文件的mapper中,即添加。

实现根据用户ID获取用户信息的用例

在test目录下的com.example.mybatis中编写一个测试用例,根据用户ID获取用户信息。

测试用例代码:

包com.example.mybatis.config;导入静态org.junit.Assert.*;导入java.io.IOException;导入java.io.InputStream;导入org.apache.ibatis.io.Resources;导入org.apache.ibatis .session.SqlSession;导入org.apache.ibatis.session.SqlSessionFactory;导入org.apache.ibatis.session.SqlSessionFactoryBuilder;导入org.junit.Test;导入com.example.mybatis.entries.User;公共类GetUserInfoByIdTest {@ Testpublic void test() {String resource='com/example/mybatis/config/mybatis-config.xml';SqlSession sqlSession=null;try {InputStream inputStream=Resources.getResourceAsStream(resource);SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder()。 build(inputStream);sqlSession=sqlSessionFactory.openSession();用户user=sqlSession.selectOne('com.example.mybatis.mappers.user.selectById', 1);System.out.println(user.toString()); assertNotNull(user);} catch (IOException e) {//TODO 自动生成的catch blocke.printStackTrace();}finally {sqlSession.close();}}}

测试结果:

测试用例输出的内容

用户评论

杰克

终于找到一篇通俗易懂的MyBatis讲解了!之前一直卡在这个地方,这篇实例演示真是太棒啦!以前用的笨重的方法一下子感觉自己开眼界了。

    有13位网友表示赞同!

゛指尖的阳光丶

作为Java后端开发新手,MyBatis确实有点难上手。感谢作者用清晰的例子来解释核心概念,让我对映射关系和sql语句拼接有了更深的理解。 现在开始尝试练习这篇文章中的代码!

    有19位网友表示赞同!

心亡则人忘

MyBatis真的太强大了吧?效率比传统的jdbc写得要轻松明了得多,而且可维护性也强很多啊!希望能有更多高级用法讲解的文章分享。

    有20位网友表示赞同!

ok绷遮不住我颓废的伤あ

这个教程确实不错,入门案例清晰易懂。但是感觉有些基础概念的描述不够深入,比如缓存机制和分页查询等方面希望能有更详细的解释。

    有9位网友表示赞同!

玻璃渣子

说实话,MyBatis的学习曲线确实比较陡峭,很多时候在网上找资料都看不太明白。这篇博客写的思路清晰,用实例讲解,对我来说挺容易理解的!还是那句话,入门是关键,后续再去深入学习就好办了!

    有5位网友表示赞同!

何年何念

我之前尝试过MyBatis,感觉使用起来太繁琐了,代码量很大,而且配置复杂,效率上也不一定能比jdbc更高。还是觉得JDBC更直接清晰一些...

    有18位网友表示赞同!

巴黎盛开的樱花

这篇博文介绍的挺好,涵盖了mybatis的基本概念和操作流程。 不过对于比较复杂的场景,比如多表联合查询、乐观锁等,希望能看到更多的实例讲解来加深理解。

    有19位网友表示赞同!

嘲笑!

MyBatis确实是一种很有用的工具,尤其是在大型项目中更显高效,减少了数据库交互的繁琐代码。 这篇文章入门教程很不错,给我敲门砖!

    有6位网友表示赞同!

一样剩余

以前在一些开源项目里见过Mybatis的代码,但从来没有深入地了解过它的工作原理。这篇博客讲解得挺好的,一下子让我对它的使用场景和优势有了清晰的认识。

    有20位网友表示赞同!

笑叹尘世美

作为一个SQL爱好者,能用MyBatis灵活操纵数据库真是太爽了!不过它的一些配置项确实比较复杂,需要花些时间去学习和理解...

    有11位网友表示赞同!

该用户已上天

还是有些不习惯MyBatis这种sql映射的方式,感觉比直接写JDBC代码麻烦一点。但如果要追求代码的可读性和可维护性的话,也许MyBatis确实是更好的选择。

    有5位网友表示赞同!

爱你的小笨蛋

感谢分享这么棒的入门教程!我现在在学习开发项目,MyBatis对于我的需求非常有用,我已经尝试了文章中的实例代码,感觉很有效。希望以后能看到更多深入讲解的文章!

    有11位网友表示赞同!

花海

MyBatis确实比较流行的ORM框架之一,但它的文档和学习资源相对较少。这篇博文提供了简洁易懂的入门指南,对于新手来说非常有用,尤其是在初学阶段容易感到困惑的时候。

    有5位网友表示赞同!

从此我爱的人都像你

我一直在寻找一款可以代替JDBC框架进行开发的工具,MyBatis看起来很合适。 经过阅读了这篇博客后,我对它的基本概念和用法有了初步了解,接下来会尝试用它来进行项目开发,看看能不能提升效率!

    有18位网友表示赞同!

妄灸

MyBatis的学习确实需要时间和耐心,这篇文章虽然入门讲解得很不错,但对于一些高端的使用场景还需要大量的练习和积累经验。 希望后续会有更多案例分享,可以帮助我们深入了解MyBatis的强大功能!

    有14位网友表示赞同!

热点资讯