文档章节

I-初入MyBatis,基础概念(不断更新)

Ieenben
 Ieenben
发布于 2015/05/13 15:19
字数 573
阅读 51
收藏 2
点赞 0
评论 0
  • properties --- 用于提供一系列的键值对组成的属性信息,该属性信息可以用于整个配置文件中。

  • settings --- 用于设置 MyBatis 的运行时方式,比如是否启用延迟加载等。

  • typeAliases --- 为 Java 类型指定别名,可以在 XML 文件中用别名取代 Java 类的全限定名。

  • typeHandlers --- 在 MyBatis 通过 PreparedStatement 为占位符设置值,或者从 ResultSet 取出值时,特定类型的类型处理器会被执行。

  • objectFactory --- MyBatis 通过 ObjectFactory 来创建结果对象。可以通过继承 DefaultObjectFactory 来实现自己的 ObjectFactory 类。

  • plugins --- 用于配置一系列拦截器,用于拦截映射 SQL 语句的执行。可以通过实现 Interceptor 接口来实现自己的拦截器。

  • environments --- 用于配置数据源信息,包括连接池、事务属性等。

  • mappers --- 程序中所有用到的 SQL 映射文件都在这里列出,这些映射 SQL 都被 MyBatis 管理。


第一步:配置全局文件:Configuration.xml;

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <typeAliases> 
        <typeAlias alias="User" type="com.ieen.mybatis.model.User"/> 
    </typeAliases>
    
    <environments default="development">
        <environment id="development">
        <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
            <property name="driver" value="com.mysql.jdbc.Driver"/>
            <property name="url" value="jdbc:mysql://127.0.0.1:3306/testmybatis" />
            <property name="username" value="root"/>
            <property name="password" value="root"/>
            </dataSource>
        </environment>
    </environments>
    
    <mappers>
        <mapper resource="com/ieen/mybatis/model/UserMapper.xml"/>
    </mappers>
    
</configuration>

Mybatis是通过sessionfactory产生sqlsession,由sqlsession对数据的增删改查和事务提交等。(使用代码)

java.io.Reader reader = Resources.getResourceAsReader("Configuration.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
SqlSession sqlSession = sqlSessionFactory.openSession();


第二步:编写对应model的mapper映射文件:示例(UserMapper.xml)

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.ieen.mybatis.model.UserMapper">
    <select id="selectUserByID" parameterType="int" resultType="User">
        select * from user where id = #{id}
    </select>
</mapper>


第三步:使用方法一(直接访问):

    SqlSessionFactory sqlSessionFactory;
    java.io.Reader reader;
    SqlSession session;
    try{
        reader = Resources.getResourceAsReader("Configuration.xml");
        sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
        session= sqlSessionFactory.openSession();
        User user = (User) session.selectOne("com.ieen.mybatis.model.UserMapper.selectUserByID",2);
        System.out.println(user.getUserAddress());
        System.out.println(user.getUserName());
        session.close();
    }catch(Exception e){
        e.printStackTrace();
    }


方法二:(接口定义)定义一个接口,创建与映射文件xml里面的sql语句的访问方法。

访问UserMapper.xml的接口定义; 

public interface UserMapper
{
    public User selectUserByID(int id);
}

使用方法:

UserMapper userMapper = sqlsession.getMapper(UserMapper.class);
User user = userMapper.selectUserByID(2);

    该方法的注意事项:(1)namespace改成接口 UserMapper的路径;

(2)接口名称与XML文件的<mapper namespace="com.ieen.mybatis.model.UserMapper">配置一致。



© 著作权归作者所有

共有 人打赏支持
Ieenben
粉丝 4
博文 33
码字总数 5025
作品 0
广州
CommonWeb基于(easyui +spring4.2.4 +mybatis 3.3)(一)

Common Web项目框架,采用(jquery easyui +spring4.2.4 +mybatis 3.3),集成了基础的菜单、用户、权限管理,便于大家快速开展自己的项目。开发人员只需要关注业务逻辑部分开发,基础的框架、...

Martin_Luo ⋅ 2016/03/15 ⋅ 0

【说云精选】 容器化与 Docker 专刊 第一期

Docker 技术经历了数年的发展,已经逐渐成了气候,完善的工具链让Docker 不再是那个拄着拐杖走路的服务,如今的 Docker 已经能够做好应用的开发部署工作。今天我们开始更新「容器化与 Docker...

西秦说云 ⋅ 01/02 ⋅ 0

服务器后端开发系列——《实战Memcached内存缓存系统》

1、实战Memcached缓存系统(1)Memcached基础及示例程序 内容:建筑Memcached背景知识和入门示例程序。 2、实战Memcached缓存系统(2)Memcached Java API基础之MemcachedClient 内容:以Mem...

晨曦之光 ⋅ 2012/04/24 ⋅ 0

nbfujx/Goku.WebService.Bus

Goku.WebService.Bus 基于SpringBoot + Spring + Apache CXF +Mybatis 开发SOAP的 WebService 服务 备注 版本 说明 1.0.0版本 2.0.0版本 springboot启动 原理 Mybatis基于动态代理实现Mappe...

nbfujx ⋅ 01/02 ⋅ 0

入行IT三年来的感想-20180413

任何行为都是由目的驱动的。 写博客是为了审视自己的行为,及时更正方向,同时可以与同道中人交流,达到提升自己的目的。 从2015年9月踏入IT行业以来,我明白了自己事业追求的方向。从中我可...

vincerten ⋅ 04/13 ⋅ 0

2015 年 Git@OSC 最热门开源项目 Top 50

自 Git@OSC 上线以来受到广大开源作者的喜爱。值此新年之际,开源中国整理出 Git@OSC 最热门开源项目 Top50,对Git@OSC 的发展至今所取得的成绩进行总结。此榜单主要通过开源项目的 Watch、S...

oschina ⋅ 2016/01/06 ⋅ 104

“六神”——技术提高开发效率的一个方案

这个方案并不是我在系统设计方面的最早一次尝试。但它在提高开发效率方面,是效果最为显著的一个方案。 简介 “六神”框架提供了一套简单而通用的、从Web层到数据库操作(增加单个数据、删除...

winters1224 ⋅ 2017/03/23 ⋅ 0

总结网友关于学习能力的评论

之前发了个帖子是问关于如何提高学习能力的,很多回答对我来说都很有用,在这里把觉得对我很有帮助的记录下来(别其他的网友的回答也很好,当然了我这里只摘录我急需提高的,用来提醒自己):...

mysky221 ⋅ 2014/11/12 ⋅ 0

Spring Boot - 整合JdbcTemplate、MyBatis

Spring Boot - 数据库配置 回顾 Spring Boot - 初识 Hello World Spring Boot - Servlet、过滤器、监听器、拦截器 Spring Boot - 静态资源处理、启动加载、日志处理 整合JdbcTemplate pom.xm...

刘忠旭 ⋅ 2017/06/10 ⋅ 0

Mybatis分页插件

如果你也在用Mybatis,建议尝试该分页插件,这一定是最方便使用的分页插件。 分页插件支持任何复杂的单表、多表分页,部分特殊情况请看重要提示。 想要使用分页插件?请看如何使用分页插件 ...

boonya ⋅ 2015/05/27 ⋅ 1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

从零开始搭建Risc-v Rocket环境---(1)

为了搭建Rocke环境,我买了一个2T的移动硬盘,安装的ubuntu-16.04 LTS版。没有java8,gcc是5.4.0 joe@joe-Inspiron-7460:~$ java -version程序 'java' 已包含在下列软件包中: * default-...

whoisliang ⋅ 24分钟前 ⋅ 0

大数据学习路线(自己制定的,从零开始学习大数据)

大数据已经火了很久了,一直想了解它学习它结果没时间,过年后终于有时间了,了解了一些资料,结合我自己的情况,初步整理了一个学习路线,有问题的希望大神指点。 学习路线 Linux(shell,高并...

董黎明 ⋅ 30分钟前 ⋅ 0

systemd编写服务

一、开机启动 对于那些支持 Systemd 的软件,安装的时候,会自动在/usr/lib/systemd/system目录添加一个配置文件。 如果你想让该软件开机启动,就执行下面的命令(以httpd.service为例)。 ...

勇敢的飞石 ⋅ 32分钟前 ⋅ 0

mysql 基本sql

CREATE TABLE `BBB_build_info` ( `community_id` varchar(50) NOT NULL COMMENT '小区ID', `layer` int(11) NOT NULL COMMENT '地址层数', `id` int(11) NOT NULL COMMENT '地址id', `full_......

zaolonglei ⋅ 41分钟前 ⋅ 0

安装chrome的vue插件

参看文档:https://www.cnblogs.com/yulingjia/p/7904138.html

xiaoge2016 ⋅ 44分钟前 ⋅ 0

用SQL命令查看Mysql数据库大小

要想知道每个数据库的大小的话,步骤如下: 1、进入information_schema 数据库(存放了其他的数据库的信息) use information_schema; 2、查询所有数据的大小: select concat(round(sum(da...

源哥L ⋅ 今天 ⋅ 0

两个小实验简单介绍@Scope("prototype")

实验一 首先有如下代码(其中@RestController的作用相当于@Controller+@Responsebody,可忽略) @RestController//@Scope("prototype")public class TestController { @RequestMap...

kalnkaya ⋅ 今天 ⋅ 0

php-fpm的pool&php-fpm慢执行日志&open_basedir&php-fpm进程管理

12.21 php-fpm的pool pool是PHP-fpm的资源池,如果多个站点共用一个pool,则可能造成资源池中的资源耗尽,最终访问网站时出现502。 为了解决上述问题,我们可以配置多个pool,不同的站点使用...

影夜Linux ⋅ 今天 ⋅ 0

微服务 WildFly Swarm 管理

Expose Application Metrics and Information 要公开关于我们的微服务的有用信息,我们需要做的就是将监视器模块添加到我们的pom.xml中: 这将使在管理和监视功能得到实现。从监控角度来看,...

woshixin ⋅ 今天 ⋅ 0

java连接 mongo伪集群部署遇到的坑

部署mongo伪集群 #创建mongo数据存放文件地址mkdir -p /usr/local/config1/datamkdir -p /usr/local/config2/data mkdir -p /usr/local/config3/data mkdir -p /usr/local/config1/l......

努力爬坑人 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部