天天看點

Mybatis應用(oracle)

                               首先聲明:

mybatis試用”

跟着老師做項目,用了三個多月的mybatis,但直到今天,才自己動手親自配置了一次mybatis。很丢人的,嘗試了幾天才解決問題。為了讓更多的初學者不用走彎路,就寫點經驗與大家分享。

廢話不多說咱們就開始吧。

首先給大家一張總文檔結構的圖

Mybatis應用(oracle)

在開始之前 首先在資料庫中導入資料

四個字段都是string型的

Mybatis應用(oracle)

第一步先建立項目

第二步也是所有的基礎就是導入jar包(讓我肝腸寸斷的一步!)一共兩個一個mybatis—3.01一個classes12。前面那個是mybatis的基礎庫。後面那個是oracle的jdbc驅動。

第三步就是建立實體類 User

package cn.dcr.mybatis.entity;

public class User {

  private String id;
  private String userName;
  private String password;
  private String age;
        //省略get set
}      

  第四步 建立configuration檔案。這是mybatis的一個核心,它指導了系統去找哪個資料庫,和去哪生成sql語句。

<?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="development">    

        <environment id="development">    

            <transactionManager type="JDBC"/>    

            <dataSource type="POOLED">    

<property name="driver" value="oracle.jdbc.OracleDriver" />

                <property name="url" value="jdbc:" />
              <property name="username" value="" />
<pre name="code" class="html">               <property name="password" value="" /> 

            </dataSource>    
        </environment>    
   
    </environments>    

    

    <mappers>    
        <mapper resource="cn/dcr/mybatis/entity/testmapper.xml"/>    
    </mappers>  

</configuration>      

注意 url那一項就是資料庫的位址  username和passwor就不用說了吧

後面的那個mapper 就是告訴系統 去哪裡建構sql語句。 

第五步 就是建立mapper檔案 也就是生成sql語句

<?xml version="1.0" encoding="UTF-8" ?>     
<!DOCTYPE mapper     
PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"     
"http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">     
     
<mapper namespace="cn.dcr.mybatis.entity.testmapper">     

    <select id="selectOne" parameterType="String" resultType="cn.dcr.mybatis.entity.User">     
        select * from userr where id = #{id}     
    </select>     

</mapper>      

sql語句parametetype就是輸入的類型 這個例子很簡單 就是string型的 後面的resulttype就不解釋了:傳回的類型。目前的sql語句就完成了專業一個要求:輸入id号,在資料庫中查到這個元組 傳回成user行的model。 當然要新增一個查詢的話 很簡單,紅字複制,然後修改。

第六步 寫初始化sqlsessionfactory

package cn.dcr.mybatis.util;   

  

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

import org.apache.ibatis.io.Resources;   
import org.apache.ibatis.session.SqlSessionFactory;   
import org.apache.ibatis.session.SqlSessionFactoryBuilder;   

  

public class Util {   

       

    private static SqlSessionFactory sqlSessionFactory = null;   
       

    static {   
        String resource = "coNfiguration.xml";           
        Reader reader = null;   
        try {   

            reader = Resources.getResourceAsReader(resource);   
        } catch (IOException e) {  
            e.printStackTrace();   
        }          

        sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);   

    }   

       

    public static SqlSessionFactory getSqlSessionFactory(){   
        return sqlSessionFactory;   
    }   

}      

這裡我就曾出現過一個問題, 這一行

  String resource = "coNfiguration.xml";           

configuration的目錄就是頂層,諸位看官,你們試試移動xml檔案看有什麼反應。

第七步

package cn.dcr.mybatis.dao;  

import org.apache.ibatis.session.SqlSession;  

import cn.dcr.mybatis.entity.User;  
import cn.dcr.mybatis.util.Util;  

  

public class UserDao {  

    public User query(String id){  
        SqlSession session = Util.getSqlSessionFactory().openSession();  

        User user = null;  
        try{  // cn.dcr.mybatis.entity.testmapper 這是mapper檔案的namespace selectOne是 <select id="selectOne" ..>的id 
             user = (User)session.selectOne("cn.dcr.mybatis.entity.testmapper.selectOne", id);  

        }catch(Exception e){  
            e.printStackTrace();  
        }finally{  
            session.close();  
        }  
        return user;  

    }  

}      

第九步 就是測試了 。最後一步了

package cn.dcr.mybatis.test;   

  

import cn.dcr.mybatis.dao.UserDao;   
import cn.dcr.mybatis.entity.User;   

  

public class UserTest {   

    public static void main(String[] args){   
        UserDao userDao = new UserDao();   
        User user = userDao.query("2");        

        System.out.println(user.getId());   
        System.out.println(user.getUserName());   
        System.out.println(user.getPassword());   
        System.out.println(user.getAge());   
    }   
}      

然後開始測試,右鍵 run as --> application

大家可以猜想一下,此時控制台會顯示什麼?

我電腦上顯示的結果

Mybatis應用(oracle)