mybatis入门一

ibatis的3.X版本改名了,叫做MyBatis,暂且不讨论之间的差别,今天来做一个MyBatis的小例子
其实MyBatis虽然在源码层面上和ibatis差别较大,但是我们实际用的时候差别并不大,只不过xml里面的标签名变了变,类名变了而已,其他的基本上一样.
如果学过hibernate,会发现Mybatis里面的类名等和hibernate的很接近,这样做就是为了降低开发人员的学习成本.
废话少说,上数据库,mysql的,超级简单
CREATE TABLE `person` (  
  `id` int(11) NOT NULL AUTO_INCREMENT,  
  `name` varchar(255) DEFAULT NULL,  
  `age` int(11) DEFAULT NULL,  
  `sex` varchar(255) DEFAULT NULL,  
  `password` varchar(255) DEFAULT NULL,  
  PRIMARY KEY (`id`)  
)  

,然后将mybatis的jar包和mysql的jar包加入,仅此两个包就行了,如果需要日志之类的再加入log4j等.
再来一个vo,Person.java
package org.qiuqiu.vo;  
  
public class Person {  
      
    private int id;  
    private String name;  
    private int age;  
    private String sex;  
    private String password;  
    public int getId() {  
        return id;  
    }  
    public void setId(int id) {  
        this.id = id;  
    }  
    public String getName() {  
        return name;  
    }  
    public void setName(String name) {  
        this.name = name;  
    }  
    public int getAge() {  
        return age;  
    }  
    public void setAge(int age) {  
        this.age = age;  
    }  
    public String getSex() {  
        return sex;  
    }  
    public void setSex(String sex) {  
        this.sex = sex;  
    }  
    public String getPassword() {  
        return password;  
    }  
    public void setPassword(String password) {  
        this.password = password;  
    }  
  
}  

接下来我们需要一个sql映射文件(xml),将sql和数据库映射,person.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.qiuqiu.dao.PersonDao">  
    <cache type="org.mybatis.caches.ehcache.EhcacheCache"/>  
    <select id="selectUserById" parameterType="int" resultType="org.qiuqiu.vo.Person">  
        select * from person where id=#{id}   
    </select>  
</mapper>  

Mybatis的应用和ibatis的最大区别就是命名空间,在ibatis中命名空间是可选的,但是在Mybatis中是强制性的,这样更好,更加规范了
最后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>  
    <environments default="myexample">  
        <environment id="myexample">  
            <transactionManager type="JDBC" />  
            <dataSource type="POOLED">  
                <property name="driver" value="com.mysql.jdbc.Driver" />  
                <property name="url" value="jdbc:mysql://localhost:3306/test" />  
                <property name="username" value="root" />  
                <property name="password" value="root" />  
            </dataSource>  
        </environment>  
    </environments>  
    <mappers>  
        <mapper resource="org/qiuqiu/vo/person.xml"/>  
    </mappers>  
</configuration>

这个文件里面的environment标签代表了数据库的各种配置,事务标签就不说了,数据源就不用我多说了吧.
下面就可以直接用MyBatis访问数据库了,写一个测试类Test.java
package org.qiuqiu.test;  
  
import java.io.IOException;  
  
import org.apache.ibatis.io.Resources;  
import org.apache.ibatis.session.SqlSession;  
import org.apache.ibatis.session.SqlSessionFactory;  
import org.apache.ibatis.session.SqlSessionFactoryBuilder;  
import org.qiuqiu.vo.Person;  
  
public class Test {  
  
    public static void main(String[] args) {  
        SqlSessionFactory factory = null;  
        try {  
            factory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsReader("Configuration.xml"));  
        } catch (IOException e) {  
            e.printStackTrace();  
        }  
        SqlSession sqlSession = factory.openSession();  
        Person p = (Person) sqlSession.selectOne("com.qiuqiu.dao.PersonDao.selectUserById", 5);  
        System.out.println(p.getName());  
    }  
  
}  

注:本文源自: http://qiuqiu0034.iteye.com/blog/1157768

猜你喜欢

转载自zhangchunxiao.iteye.com/blog/2218623