天天看点

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)