文档章节

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

Ieenben
 Ieenben
发布于 2015/05/13 15:19
字数 573
阅读 52
收藏 2
  • 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
博文 35
码字总数 5025
作品 0
广州
私信 提问
4.16周六下午8点二元期权重构基础框架初步讨论

重构会在商定好期权分配和现金补贴后正式开始(约是4月底、5月初)。这几周我想利用起来、大家讨论下基础框架及相关问题。初定4.16周六下午8点在QQ群讨论,大家可以提前准备下。 想必大家都看...

skyscraper
2016/04/11
1
0
CommonWeb基于(easyui +spring4.2.4 +mybatis 3.3)(一)

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

Martin_Luo
2016/03/15
245
0
【说云精选】 容器化与 Docker 专刊 第一期

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

西秦说云
01/02
0
0
怎样才能正确了解自身的价位,合理的选择入职公司及深研技术节点?

如题,对于年前年后的跳槽大风波,引入了思考; java程序员 如何来给自己准备的定位,发挥自己的优势,正确的找到何时的公司? 这个问题应该得到重视,正所谓 "跳槽穷半年,换行穷三年", 公司好的谁也...

尾生
2016/12/30
1K
6
服务器后端开发系列——《实战Memcached内存缓存系统》

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

晨曦之光
2012/04/24
98
0

没有更多内容

加载失败,请刷新页面

加载更多

jquery通过id显示隐藏

var $div3 = $('#div3'); 显示 $div3.show(); 隐藏 $div3.hide();

yan_liu
今天
3
0
《乱世佳人》读书笔记及相关感悟3900字

《乱世佳人》读书笔记及相关感悟3900字: 之前一直听「荔枝」,后来不知怎的转向了「喜马拉雅」,一听就是三年。上班的时候听房产,买房了以后听装修,兴之所至时听旅行,分手后听亲密关系,...

原创小博客
今天
3
0
大数据教程(9.6)map端join实现

上一篇文章讲了mapreduce配合实现join,本节博主将讲述在map端的join实现; 一、需求 实现两个“表”的join操作,其中一个表数据量小,一个表很大,这种场景在实际中非常常见,比如“订单日志...

em_aaron
今天
3
0
cookie与session详解

session与cookie是什么? session与cookie属于一种会话控制技术.常用在身份识别,登录验证,数据传输等.举个例子,就像我们去超市买东西结账的时候,我们要拿出我们的会员卡才会获取优惠.这时...

士兵7
今天
3
0
十万个为什么之为什么大家都说dubbo

Dubbo是什么? 使用背景 dubbo为什么这么流行, 为什么大家都这么喜欢用dubbo; 通过了解分布式开发了解到, 为适应访问量暴增,业务拆分后, 子应用部署在多台服务器上,而多台服务器通过可以通过d...

尾生
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部