如何使用mybatis

如果你的数据表有100列(例如你的考研报名信息= =),这时如果你还用sql语言中的insert来插入一行数据,那就太不方便了,而且也很不美观。但如果能够创建一个类,列名都写在类里,每次插入都只需要把变量名定义一下,就爽快多了。而且还有两个额外的好处。1.可以做到填充内容默认为空值,这样不填值的项可以直接无视,不用赋值为null,而且这样做有个好处,就是null值是不能被where索引的,但是空值就可以!2.可以方便地让你填的值在填之前进行一系列的计算。

1.在src文件夹下创建一个配置文件conf.xml







    
        
        
            
            
                
                
                
                
            
        
    


2.在src文件夹下再创建一个包,一般以.mapper结尾,这个包用来存放映射文件。我们在这个包下建立一个mapper.xml。所有的操作都要定义在这里面,这里我们定义了一个根据年龄查表的方法。









    
    
    
    
    

3.然后我们还要在刚才创建的conf.xml文件里注册这个映射文件。配置文件是工程一开始就读取的,自然什么东西都要写在里面。

    
        
        
    

4.然后就可以写测试代码了。该代码实现从meizhi这个表中得到第一行数据,并打印其中的名字。

// mybatis的配置文件
String resource = "Configuration.xml";
// 使用类加载器加载mybatis的配置文件(它也加载关联的映射文件)
InputStream is = Apnons2Salslp.class.getClassLoader().getResourceAsStream(resource);
// 构建sqlSession的工厂
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is);
// 创建能执行映射文件中sql的sqlSession
SqlSession session = sessionFactory.openSession();
        
String selectAge = "com.atkaixian.db2.mapper.getFromAge";   // 映射sql的标识字符串
// 执行查询返回一个唯一meizhi对象的sql
Meizhi meizhi = session.selectOne(selectAge,23);
System.out.println(meizhi.name);

5.这样我们成功实现了,通过session.selectOne方法,从ID为getFromAge的标签中执行代码,并返回唯一一行的操作。但是,这个方法能力比较有限,例如只能查询,不能添加删除。要想添加删除,我们必须先学会另外一种方法:使用接口。在src中再创建一个包,以interface结尾,里面创建一个interface.java文件。这里要提一下,用接口实现mapper标签的方法很神奇,可以这么认为:session方法实现的并不是纯正的标签方法,而是编译过的,但使用接口则是正儿八经的原自定义方法!

package com.atkaixian.inter;
import com.atkaixian.db2.Meizhi;

public interface Interface {
    // 函数名与id一致,这个不同多说,返回类型是对象
    public Meizhi getFromAge(int age);
    public void addMeizhi(Meizhi meizhi);   
}

6.写好接口之后,刚才的mapper命名空间就需要改一下,原本指向自己需要改为指向接口!然后就可以写测试代码了

Interface mapper = session.getMapper(Interface.class);
Meizhi meizhi2 = mapper.getFromAge(25);
System.out.println(meizhi2.name);

7.接下来学习添加操作就简单了。接口文件刚才就已经写好了,返回类型为空,函数参数为Meizhi。mapper写法如下,这里要注意的是,在刚才的方法中{age}中的age不需要跟列名一致,甚至不写都可以,但是这个方法要求严格,必须完全一样:

 
    insert into meizhi values(#{age},#{height},#{weight},#{name},#{hometown})

8.添加操作!

Interface mapper = session.getMapper(Interface.class);
mapper.addMeizhi(meizhi);  
// 请注意一定需要提交。  
session.commit(); 

基本操作大概就这么些,最后推荐2篇文章,我就是靠这两个文档学会了mybatis,非常感谢!
http://www.cnblogs.com/xdp-gacl/p/4261895.html#!comments
http://blog.csdn.net/kutejava/article/details/9164353#t1

你可能感兴趣的:(如何使用mybatis)