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]

890

被折叠的 条评论
为什么被折叠?



