初級mybatis教程

jopen 11年前發布 | 32K 次閱讀 MyBatis MyBatis3 持久層框架

第一步: 

添加相應的jar 去吧http://code.google.com/p/mybatis/ 下載 MyBatis Core Framework



myeclipse  創建 mybatis web 項目 添加相應的包

 初級mybatis教程

下面我一數據庫表student 為例 進行項目的搭建

   初級mybatis教程

 初級mybatis教程


1編寫  StudentS實體類

package cn.kuvi.demo;

public class Student {
    
    private int id;
    private String name;
    private String email;
    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 String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }
    
public Student() {
    // TODO Auto-generated constructor stub
}
@Override
public String toString() {
    // TODO Auto-generated method stub
    return super.toString();
}
public Student(int id, String name, String email) {
    super();
    this.id = id;
    this.name = name;
    this.email = email;
}
}
 

2 編寫

package cn.kuvi.demo;

//創建接口 編寫相應的方法使用IBATIS 不需要寫相應的實現方法   

相對Hibernate和Apache OJB 等“一站式”ORM解決方案而言,ibatis 是一種“半 


自動化”的ORM實現。 縱觀目前主流的ORM,無論Hibernate 還是 
Apache OJB,都對數據庫結構提供了較為完整的封裝,提供了從POJO 到數據庫表的全 
套映射機制。程序員往往只需定義好了POJO 到數據庫表的映射關系,即可通過Hibernate 或者OJB 提供的方法完成持久層操作。程序員甚至不需要對SQL 的熟練掌握,Hibernate/OJB 會根據制定的存儲邏輯,自動生成對應的SQL 并調用JDBC 接口加以執 行。 ---- 摘自官方資料的一段話

 總結:ibatis是一種半自動化的ORM, 需要手工編寫sql ;hibernate不需要手工編寫sql。

//

2、 優點

⑴、iBATIS被廣泛認為是最簡單的一種持久化框架。

sql可以寫在xml中,結構清晰,靈活配置。

 ⑵、文件歸類,select 后的字須定義到標簽中,可以實現部分代碼復用。

 ⑶、執行sql后,返回的結果集自動封裝。類似以下代碼,均可省略。


public interface StudentDao {
    Student getstudent(int id);
    void save(Student student);
    

}


3配置config.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" >         注意使用添加dtd 文件

                                                       初級mybatis教程
<configuration>
    <properties resource="jdbc.properties">
    </properties>
    <environments default="dev">
        <environment id="dev">
            <transactionManager type="JDBC" />
            <dataSource type="POOLED">
                <property name="driver" value="${driver}" />
                <property name="url" value="${url}" />
                <property name="username" value="${username}" />
                <property name="password" value="${password}" />
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="cn/kuvi/demo/StudentMapper.xml" />
    </mappers>
</configuration>

4.配置映射文件mapper

<?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="cn.kuvi.demo.StudentDao">
    <select id="getstudent" parameterType="int" resultType="cn.kuvi.demo.Student">一定要寫全路徑
       select name,address as email from person where id=#{id}
   </select>
</mapper>

測試類

package test;

import java.io.IOException;
import java.io.Reader;

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 cn.kuvi.demo.Student;
import cn.kuvi.demo.StudentDao;

public class test {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        try {
            String resource = "cn/kuvi/demo/StudentConfig.xml";
            Reader reader;

            reader = Resources.getResourceAsReader(resource);

            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder()
                    .build(reader);
            SqlSession sqlSession = sqlSessionFactory.openSession();
            StudentDao studentDao =sqlSession.getMapper(StudentDao.class);
            Student st = studentDao.getstudent(1);
            System.out.println(st.getName() +"   "+ st.getEmail());
            sqlSession.close();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
    }

}

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!