标签:
iBATIS一词来源于“internet”和“abatis”的组合,于2010年6月16号被谷歌托管,改名为MyBatis。是一个基于SQL映射支持Java和·NET的持久层框架。
ibatis本是apache的一个开源项目,2010年这个项目由apache software foundation 迁移到了google code,并且改名为mybatis。
这里来对ibatis做一个简单的入门,
第一步,引包
ibatis.jar 和数据库驱动包,这里选用的是mysql
第二步:写配置文件
SqlMapConfig.xml (名字自己取,和hibernate一样,读取的时候读取自己取得文件名就OK了)
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-config-2.dtd"> <sqlMapConfig> <!-- 引用JDBC属性的配置文件 --> <properties resource="cn/test/SqlMap.properties"></properties> <!-- 使用JDBC的事务管理 --> <transactionManager type="JDBC"> <!-- 数据源 --> <dataSource type="SIMPLE"> <property name="JDBC.Driver" value="${driver}"/> <property name="JDBC.ConnectionURL" value="${url}"/> <property name="JDBC.Username" value="${username}"/> <property name="JDBC.Password" value="${password}"/> </dataSource> </transactionManager> <!-- 这里可以写多个实体的映射文件 --> <sqlMap resource="cn/test/domain/Student.xml"/> </sqlMapConfig>
然后创建一个参数文件
SqlMap.properties
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/test
username=root
password=123456
这里数据库的链接就基本上完成了,
然后开始写一个实体类:Student.java
package cn.test.domain; public class Student { private String Id; private String name; private int age; public Student() { // TODO Auto-generated constructor stub } public String getId() { return Id; } public void setId(String id) { Id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
写一个实体类对应的映射文件:Student.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd"> <sqlMap> <typeAlias alias="Student" type="cn.test.domain.Student"/> <!-- 这样以后改了sql,就不需要去改java代码了 --> <!-- id表示select里的sql语句,resultClass表示返回结果的类型 --> <select id="selectAllStudent" resultClass="Student"> select * from student </select> </sqlMap>
这个框架简单易懂,这里的select就是查询放方法, ID就是这个查询SQL所分配的地址, type是映射的 Student实体类
然后将映射文件加入到核心配置文件中SqlMapConfig.xml
<sqlMap resource="cn/test/domain/Student.xml"/>
然后开始写一个测试的方法
package cn.test.service; import java.io.IOException; import java.io.Reader; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import com.ibatis.common.resources.Resources; import com.ibatis.sqlmap.client.SqlMapClient; import com.ibatis.sqlmap.client.SqlMapClientBuilder; import cn.test.domain.Student; public class StudentImpl implements IStudent { private static SqlMapClient sqlMapClient = null; // 读取配置文件 static { try { Reader reader = Resources.getResourceAsReader("cn/test/SqlMapConfig.xml"); sqlMapClient = SqlMapClientBuilder.buildSqlMapClient(reader); reader.close(); } catch (IOException e) { e.printStackTrace(); } } public void addStudent(Student student) { // TODO Auto-generated method stub } public List<Student> selStudent() { // TODO Auto-generated method stub List<Student> student = null; try { student = sqlMapClient.queryForList("selectAllStudent"); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return student; } }
写一个测试文件进行测试即可
package cn.test.main; import java.util.List; import cn.test.domain.Student; import cn.test.service.IStudent; import cn.test.service.StudentImpl; public class Test { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub IStudent istudent = new StudentImpl(); List<Student> student = istudent.selStudent(); for(int i =0;i<student.size();i++){ System.out.printf("id="+student.get(i).getId() + "name = " +student.get(i).getName() + "age = " + student.get(i).getAge()); } } }
能够看到数据库的内容被取出来的时候就表示测试此框架成功
标签:
原文地址:http://www.cnblogs.com/sunxun/p/4208761.html