Ibatis是apache基金會的一個開源項目,Ibatis實現了java實體類與Sql語句的映射,是對JDBC的輕量級的封裝,與Hibernate不同的是,Ibatis允許開發人員自己編寫高效的Sql語句,而不是用架構自動產生Sql語句,提高了Sql語句的執行效率。下面就給出一個ibatis使用執行個體。
1.去ibatis官網下載ibatis的相關包。 http://ibatis.apache.org/. 最後把ibatis.jar包匯入到項目的中(假定我們這次執行個體的資料庫是mysql。)。
2.項目相關設定檔database-config.properties(資料庫配置屬性檔案)、SqlConfig.xml(ibatis設定檔)、 TEACHER_SqlMap.xml(java實體和資料庫sql設定檔)
database-config.properties檔案內容
java.mysql.server=127.0.0.1 java.mysql.port=3306 java.mysql.url=jdbc/:mysql/://${java.mysql.server}/:${java.mysql.port}/${java.mysql.database} java.mysql.database=school java.mysql.username=root java.mysql.password=root java.mysql.driver=com.mysql.jdbc.Driver
TEACHER_SqlMap.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 namespace="TEACHER"> <typeAlias type="com.yjpeng.ibatis.model.Teacher" alias="teacher" /> <resultMap class="teacher" id="teacherResult"> <result column="id" property="id" jdbcType="INT" /> <result column="name" property="name" jdbcType="VARCHAR" /> <result column="address" property="address" jdbcType="VARCHAR" /> </resultMap> <select id="teacher_getTeacherList" resultMap="teacherResult"> select * from teacher </select> </sqlMap>
SqlConfig.xml檔案內容
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE sqlMapConfig PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN" "http://www.ibatis.com/dtd/sql-map-config-2.dtd" > <sqlMapConfig> <properties resource="database-config.properties" /> <settings cacheModelsEnabled="true" /> <transactionManager type="JDBC"> <dataSource type="SIMPLE"> <!-- JDBC驅動 --> <property name="JDBC.Driver" value="${java.mysql.driver}" /> <!-- JDBC串連URL --> <property name="JDBC.ConnectionURL" value="${java.mysql.url}" /> <!-- JDBC訪問資料庫的使用者名稱 --> <property name="JDBC.Username" value="${java.mysql.username}" /> <!-- JDBC訪問資料庫的密碼 --> <property name="JDBC.Password" value="${java.mysql.password}" /> </dataSource> </transactionManager> <sqlMap resource="com/yjpeng/ibatis/sqlmap/TEACHER_SqlMap.xml" /> </sqlMapConfig>
3.TeacherDAO.java(介面檔案)、TeacherDAOImpl介面實現檔案。
TeacherDAO.java檔案內容
package com.yjpeng.ibatis.dao; import java.util.List; import com.yjpeng.ibatis.model.Teacher; public interface TeacherDAO { List<Teacher> getTeacherList(); }
TeacherDAOImpl.java檔案內容
package com.yjpeng.ibatis.dao; import java.io.Reader; import java.sql.SQLException; import java.util.List; import com.ibatis.common.resources.Resources; import com.ibatis.sqlmap.client.SqlMapClient; import com.ibatis.sqlmap.client.SqlMapClientBuilder; import com.yjpeng.ibatis.model.Teacher; public class TeacherDAOImpl implements TeacherDAO { private SqlMapClient sqlmap = null; public TeacherDAOImpl(SqlMapClient sqlmap){ this.sqlmap = sqlmap; } public List<Teacher> getTeacherList() { List<Teacher> list = null; try { list = sqlmap.queryForList("teacher_getTeacherList", null); return list; } catch (SQLException e) { e.printStackTrace(); } return null; } public static void main(String[] args) { Reader reader = null; try{ reader = Resources.getResourceAsReader("etc/SqlConfig.xml"); SqlMapClient sqlmap = SqlMapClientBuilder.buildSqlMapClient(reader); TeacherDAO teacherDAO = new TeacherDAOImpl(sqlmap); List<Teacher> list = teacherDAO.getTeacherList(); System.out.println(list.size()); }catch (Exception e) { e.printStackTrace(); } } }
好了,一個簡單的ibatis執行個體,已經講解完了。由於是例子所以寫的比較簡單請見諒。