mybatis 入门

2015年1月19日09:28:12 天气晴

项目结构一览(参考文章http://blog.csdn.net/huzheaccp/article/details/7399124/)


1.导入mybatis-3.1.1.jar、ojdbc14.jar

mybatis(下载mybatis-3.1.1-bundle.zip即可)下载地址:https://code.google.com/p/mybatis/downloads/list?q=label:Deprecated

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>
		<!--给实体类起一个别名 Emp -->
		<typeAlias type="com.gzpost.model.Emp" alias="Emp" />
	</typeAliases>
	<!--数据源配置  这块用 oracle数据库 -->
	<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:@10.194.16.65:1521:jtwz" />
				<property name="username" value="framework" />
				<property name="password" value="84076518" />
			</dataSource>
		</environment>
	</environments>
	<mappers>
		<!--empMapper.xml装载进来  同等于把"dao"的实现装载进来 -->
		<mapper resource="com/gzpost/model/mapper/EmpMapper.xml" />
	</mappers>
</configuration> 

3.创建实体类

Emp.java

package com.gzpost.model;

import java.io.Serializable;

/**
 * 员工类
 */
public class Emp implements Serializable{

	private Integer eid;
	private String ename;
	private Integer age;
	private String sex;

	public Integer getEid() {
		return eid;
	}

	public void setEid(Integer eid) {
		this.eid = eid;
	}

	public String getEname() {
		return ename;
	}

	public void setEname(String ename) {
		this.ename = ename;
	}

	public Integer getAge() {
		return age;
	}

	public void setAge(Integer age) {
		this.age = age;
	}

	public String getSex() {
		return sex;
	}

	public void setSex(String sex) {
		this.sex = sex;
	}

	@Override
	public String toString() {
		return "Emp [eid=" + eid + ", ename=" + ename + ", age=" + age
				+ ", sex=" + sex + "]";
	}
	
}

4.创建dao接口(可以说是Mapper接口)

EmpMapper.java

package com.gzpost.dao;

import com.gzpost.model.Emp;

public interface EmpMapper {
	public Emp findByEid(Integer eid);
}

5.创建dao的实现

//不同于hibernate,此处用一个EmpMapper.xml的文件来实现

EmpMapper.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.gzpost.dao.EmpMapper">
	<!-- findByEid必须和接口中的方法名一样  返回一个Emp就是刚才的别名  如果不弄别名要连类路径一起写 麻烦-->
	<select id="findByEid" parameterType="int" resultType="Emp">
		select * from emp where eid=#{eid}
    </select>
</mapper>

6.测试类

TestMybatis.java

package com.gzpost.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.gzpost.dao.EmpMapper;
import com.gzpost.model.Emp;

/**
 * mybatis数据库连接测试 
 *
 */
public class TestMybatis {

	/**
	 * 获得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) {  
	            e.printStackTrace();  
	        }  
	        return sessionFactory;  
	    }  
	
	public static void main(String[] args) {
		SqlSession sqlSession = getSessionFactory().openSession();  
        EmpMapper empMapper = sqlSession.getMapper(EmpMapper.class);  
        Emp emp = empMapper.findByEid(1);
        System.out.println(emp);  
	}
}

控制台打印的结果如下:

Emp [eid=1, ename=jack, age=33, sex=f]







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值