MyBatis学习:基础环境搭建与入门

所需要jar包:mybatis-3.x.x.jar 、如果要和其它框架整合,需要其它的jar包

mybatis的j资料及jar下载地址:http://download.youkuaiyun.com/detail/itjavawfc/7685119

1.看看项目目录:



2.按照步骤:

1)加jar包

2)创建数据源(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>  
            <!--给实体类起一个别名 user -->  
            <typeAlias type="com.forum.po.User" alias="User" />  
        </typeAliases>  
        <!--数据源配置  这块用 BD2数据库 -->  
        <environments default="development">  
            <environment id="development">  
                <transactionManager type="jdbc" />  
                <dataSource type="POOLED">  
                    <property name="driver" value="oracle.jdbc.driver.OracleDriver" />  
                    <property name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:orcl
" />  
                    <property name="username" value="scott" />  <!-- DB2ADMIN -->
                    <property name="password" value="tiger" />   <!-- admin -->
                </dataSource>  
            </environment>  
        </environments>  
        <mappers>  
            <!--userMapper.xml装载进来  同等于把“dao”的实现装载进来 -->  
            <mapper resource="myBatis/userMapper.xml" />  
        </mappers>  
    </configuration>   

3)创建实体USER

package com.forum.po;

import org.apache.ibatis.ognl.IntHashMap.Entry;

/** 
 * 用户类 
 *  
 * @author 方晨
 *  
 */  
public class User extends Entry {  
    private String name;  
    private Integer age;  
    public String getName() {  
        return name;  
    }  
    public void setName(String name) {  
        this.name = name;  
    }  
    public Integer getAge() {  
        return age;  
    }  
    public void setAge(Integer age) {  
        this.age = age;  
    }  
    public User() {  
    }  
  
}  

4)创建DAO接口,可以说是Map片儿接口,UserMapper接口

    package com.forum.dao;  
      
    import com.forum.po.User;  
      
    public interface UserMapper {  
        public User findById(String Id);  
    }  

5)创建DAO实现,不同于Hibernate,此处的DAO实现都是通过一个xml文件实现.也就是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.forum.dao.UserMapper">  
        <!-- findById必须和接口中的方法名一样  返回一个User  就是刚才的别名  如果不弄别名要连类路径一起写 麻烦-->  
        <select id="findById" parameterType="HashMap" resultType="User">  
        <!--     select  * from butone.student where id=#{id}    --> 
        
        select * from TT where id=#{id}
        </select>  
    </mapper>  

6)测试类:MyBatisTest.java

    package com.forum.test;  
      
    import java.io.IOException;  
      
    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.forum.dao.UserMapper;  
    import com.forum.po.User;  
      
    /** 
     * myBatis数据库连接测试 
    
     */  
    public class MyBatisTest {  
        /** 
         * 获得MyBatis SqlSessionFactory   
         * SqlSessionFactory负责创建SqlSession,一旦创建成功,就可以用SqlSession实例来执行映射语句,commit,rollback,close等方法。 
         * @return 
         */  
        private static SqlSessionFactory getSessionFactory() {  
            SqlSessionFactory sessionFactory = null;  
            String resource = "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();  
            UserMapper userMapper = sqlSession.getMapper(UserMapper.class);  
            User user = userMapper.findById("1");  
            System.out.println(user.getName());  
            System.out.println(user.getAge()); 
      
        }  
      
    }  


得到结果:


此处自己用的是Oracle,在此之前应该在数据库中创建任意表,当然必须含有id,name,age参数,要和User对应。

我的建表语句:

CREATE TABLE TT(
ID  INTEGER,
NAME VARCHAR2(20),
age  VARCHAR2(20)
); 

INSERT INTO TT VALUES(1,'汪方晨','18');

SELECT * FROM TT;





评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

野火少年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值