Mybatis初入門

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

mybatis的配置xml,實體類,dao。

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>  
        <!--給實體類起一個別名 blog -->  
        <typeAlias type="com.demo.po.Blog" alias="blog" />  
    </typeAliases>  
    <!--數據源配置  這塊用 mysql數據庫 -->  
    <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://localhost:3306/jfinal_demo" />  
                <property name="username" value="root" />  
                <property name="password" value="123" />  
            </dataSource>  
        </environment>  
    </environments>  
    <mappers>  
        <!--blogMapper.xml裝載進來  同等于把“dao”的實現裝載進來 -->  
        <mapper resource="com/demo/mybatis/blogMapper.xml" />  
    </mappers>  
</configuration>

dao    (xxxxMapper.java)

// dao層 方法名要和xxxMapper.xml的select id對應起來
package com.demo.dao;        

import com.demo.po.Blog;

public interface BlogMapper {
    public Blog find(String id);
}

xxxxMapper.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">  
    <!--這塊等于dao接口的實現  namespace必須和接口的類路徑一樣-->  
<mapper namespace="com.demo.dao.BlogMapper">  
    <!-- findById必須和接口中的方法名一樣  返回一個Blog 就是剛才的別名  如果不弄別名要連類路徑一起寫 麻煩-->  
    <select id="find" parameterType="HashMap" resultType="Blog">  
        select  
        * from blog where id=#{id}  
    </select>  
</mapper>

實體類

package com.demo.po;

public class Blog {
        // 數據庫字段
    private int id;
    private String title;
    private String content;
    // 添加get set方法
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getTitle() {
        return title;
    }
    public void setTitle(String title) {
        this.title = title;
    }
    public String getContent() {
        return content;
    }
    public void setContent(String content) {
        this.content = content;
    }
}

Test(測試類)

package com.demo.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 com.demo.dao.BlogMapper;
import com.demo.po.Blog;

public class Test {
          
    /** 
     * 獲得MyBatis SqlSessionFactory   
     * SqlSessionFactory負責創建SqlSession,一旦創建成功,就可以用SqlSession實例來執行映射語句,commit,rollback,close等方法。 
     * @return 
     */  
    private static SqlSessionFactory getSessionFactory() {  
        SqlSessionFactory sessionFactory = null;  
        // 這塊跟你的mybatis配置路徑,最好寫全,我就報過錯
        String resource = "com/demo/configuration.xml";  
        try {  
            sessionFactory = new SqlSessionFactoryBuilder().build(Resources  
                    .getResourceAsReader(resource));  
        } catch (IOException e) {  
            // TODO Auto-generated catch block  
            e.printStackTrace();  
        }  
        return sessionFactory;  
    }  
  
    public static void main(String[] args) {  
        SqlSession sqlSession = getSessionFactory().openSession();  
        BlogMapper blogMapper = sqlSession.getMapper(BlogMapper.class);  
        Blog blog = blogMapper.find("2");  
        System.out.println(blog.getTitle());  
  
    }  
}

 

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