mybatis开发环境搭建

案例结构:

这里用Oralce+myeclipse 测试:

  建表语句:

CREATE TABLE USERS (
  ID NUMBER(10) NOT NULL PRIMARY KEY,
  NAME VARCHAR2(100) ,
  birth DATE 

);
--创建序列
CREATE SEQUENCE users_seq START WITH 1;

 

 1.mybaits配置文件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 >
   
    <properties resource="db.properties">
   
    </properties>
     
     <!-- 为实体对象起一个别名 -->
     <typeAliases >
      <typeAlias type="com.wa.mybatis.model.Users" alias="Users"/><!--
      <package name="com.wa.mybatis.model"/>
     --></typeAliases>
   
    <environments default="development">
     
     <environment id="development" >
      <transactionManager type="JDBC"/>
    
      <dataSource type="POOLED" >
      <property name="username" value="${username}"/>
      <property name="password" value="${password}"/>
      <property name="driver" value="${driver}"/>
      <property name="url" value="${url}"/>
      </dataSource>
     
     </environment>
     
    
    </environments>
    
    <mappers>
    <mapper resource="com/wa/mybatis/dao/UserMapper.xml"/>
    </mappers>
    
      
   </configuration>


二、Users类:

public class Users {
    
    private Integer id ;
    private String name ;
    
    private Date birth ;
 //getter ,setter 方法省略

}

三、userDao类:
  

public interface UserDao {
    
    public Users findById(int id);
    
    public void saveUser(Users user);
    
    public void deleteById(int id);
    
    public void updateUser(Users user);
    
    public List<Users> findAllUser();

}

四、userMapper.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.wa.mybatis.dao.UserDao">
 
  <insert id="saveUser" parameterType="Users">
  <!-- 通过序列为对象id赋值 -->
   <selectKey keyColumn="id" keyProperty="id" order="BEFORE" resultType="java.lang.Integer">
    select users_seq.nextval from dual
   </selectKey>
   insert into users (id,name,birth) values (#{id},#{name},#{birth})
  </insert>
   
   <!-- 删除一个对象 -->
   <delete id="deleteById"  parameterType="Integer">
    delete from users where id = #{id}
   </delete>
   
    <!-- 更新一个对象  -->
    <update id="updateUser" parameterType="Users">
    update users set name=#{name},birth=#{birth} where id=#{id}
    </update>
    
    <!-- 查询时要指定结果集类型 -->
    <select id="findById" parameterType="Integer" resultType="Users">
    select * from users where id = #{id}
    </select>
   
    <select id="findAllUser"  resultMap="list">
    select * from users
    </select>
    
    <resultMap type="Users" id="list">
    
      <id column="id" property="id"/>
      <result column="name" property="name"/>
      <result column="birth" property="birth"/>
    
     </resultMap>
    
    
 
 
 </mapper>   
    
    


五.sessionFactory工具类:

import java.io.IOException;

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

/**
 * 获取sessionfactory对象的工具类
 */
public class SessionFactoryUtil {
    
    
    public static SqlSessionFactory getFactory() throws IOException{
        
        String resource = "configuration.xml";
        //加载配置文件,获取sessionfactory对象
        SqlSessionFactory sessionFactory= new SqlSessionFactoryBuilder()
             .build(Resources.getResourceAsStream(resource));
     return sessionFactory;
    }

}

六、测试:

import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.junit.Test;

import com.wa.mybatis.dao.UserDao;
import com.wa.mybatis.model.Users;
import com.wa.mybatis.util.SessionFactoryUtil;

public class Test1 {
    /**
     * 添加对象
     * @throws IOException
     */
    @Test
    public void test1() throws IOException{
        
        SqlSessionFactory sessionFactory =SessionFactoryUtil.getFactory();
        
       SqlSession session = sessionFactory.openSession();
       //获取映射的接口对象 
        UserDao userDao = session.getMapper(UserDao.class);
        Users user = new Users();
        //user.setId(-1);
        user.setBirth(new Date());
        user.setName("mybatis");
        userDao.saveUser(user);
        //提交事务
        session.commit();
    }
    /**
     * 删除对象
     * @throws IOException 
     */
    @Test
    public void test2() throws IOException{
        SqlSessionFactory sessionFactory =SessionFactoryUtil.getFactory();
        
           SqlSession session = sessionFactory.openSession();
           //获取映射的接口对象 
            UserDao userDao = session.getMapper(UserDao.class);
            userDao.deleteById(82);
            session.commit();
    }
    /**
     * 更新一个对象
     * @throws IOException
     */
    @Test
    public void test3() throws Exception{
        SqlSessionFactory sessionFactory =SessionFactoryUtil.getFactory();
        
           SqlSession session = sessionFactory.openSession();
           //获取映射的接口对象 
            UserDao userDao = session.getMapper(UserDao.class);
            Users user = new Users ();
            user.setId(81);
            user.setBirth(new SimpleDateFormat("yyyy-MM-dd").parse("2012-10-21"));
            user.setName("ibatis");
            userDao.updateUser(user);
            session.commit();
    }
    
    /**
     * 查询一个对象
     * @throws IOException
     */
    @Test
    public void test4() throws Exception{
        SqlSessionFactory sessionFactory =SessionFactoryUtil.getFactory();
        
           SqlSession session = sessionFactory.openSession();
           //获取映射的接口对象 
            UserDao userDao = session.getMapper(UserDao.class);
            
            Users user = userDao.findById(81);
            System.out.println(user);
    }
    
    /**
     * 查询所有对象
     * @throws IOException
     */
    @Test
    public void test5() throws Exception{
        SqlSessionFactory sessionFactory =SessionFactoryUtil.getFactory();
        
           SqlSession session = sessionFactory.openSession();
           //获取映射的接口对象 
            UserDao userDao = session.getMapper(UserDao.class);
            
            List<Users> list = userDao.findAllUser();
            
            System.out.println(list);
    }
 

}

 

posted @ 2015-01-02 22:41  snow__wolf  阅读(143)  评论(0编辑  收藏  举报