初級mybatis教程
第一步:
添加相應的jar 去吧http://code.google.com/p/mybatis/ 下載 MyBatis Core Framework
在myeclipse 創建 mybatis web 項目 添加相應的包
下面我一數據庫表student 為例 進行項目的搭建
1編寫 StudentS實體類
package cn.kuvi.demo;
public class Student {
private int id;
private String name;
private String email;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public Student() {
// TODO Auto-generated constructor stub
}
@Override
public String toString() {
// TODO Auto-generated method stub
return super.toString();
}
public Student(int id, String name, String email) {
super();
this.id = id;
this.name = name;
this.email = email;
}
}
2 編寫
package cn.kuvi.demo;
//創建接口 編寫相應的方法使用IBATIS 不需要寫相應的實現方法
相對Hibernate和Apache OJB 等“一站式”ORM解決方案而言,ibatis 是一種“半
自動化”的ORM實現。 縱觀目前主流的ORM,無論Hibernate 還是
Apache OJB,都對數據庫結構提供了較為完整的封裝,提供了從POJO 到數據庫表的全
套映射機制。程序員往往只需定義好了POJO 到數據庫表的映射關系,即可通過Hibernate 或者OJB 提供的方法完成持久層操作。程序員甚至不需要對SQL 的熟練掌握,Hibernate/OJB 會根據制定的存儲邏輯,自動生成對應的SQL 并調用JDBC 接口加以執 行。 ---- 摘自官方資料的一段話
總結:ibatis是一種半自動化的ORM, 需要手工編寫sql ;hibernate不需要手工編寫sql。
//2、 優點
⑴、iBATIS被廣泛認為是最簡單的一種持久化框架。
sql可以寫在xml中,結構清晰,靈活配置。
⑵、文件歸類,select 后的字須定義到標簽中,可以實現部分代碼復用。
⑶、執行sql后,返回的結果集自動封裝。類似以下代碼,均可省略。
public interface StudentDao {
Student getstudent(int id);
void save(Student student);
}
3配置config.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" > 注意使用添加dtd 文件
<configuration>
<properties resource="jdbc.properties">
</properties>
<environments default="dev">
<environment id="dev">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="${driver}" />
<property name="url" value="${url}" />
<property name="username" value="${username}" />
<property name="password" value="${password}" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="cn/kuvi/demo/StudentMapper.xml" />
</mappers>
</configuration>
4.配置映射文件mapper
<?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" >
<mapper namespace="cn.kuvi.demo.StudentDao">
<select id="getstudent" parameterType="int" resultType="cn.kuvi.demo.Student">一定要寫全路徑
select name,address as email from person where id=#{id}
</select>
</mapper>
測試類
package test;
import java.io.IOException;
import java.io.Reader;
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 cn.kuvi.demo.Student;
import cn.kuvi.demo.StudentDao;
public class test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
String resource = "cn/kuvi/demo/StudentConfig.xml";
Reader reader;
reader = Resources.getResourceAsReader(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder()
.build(reader);
SqlSession sqlSession = sqlSessionFactory.openSession();
StudentDao studentDao =sqlSession.getMapper(StudentDao.class);
Student st = studentDao.getstudent(1);
System.out.println(st.getName() +" "+ st.getEmail());
sqlSession.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}