目錄html
學習一個新的知識,首先作一個簡單的例子使用一下,而後再逐步深刻。MyBatis的學習咱們也從一個小例子開始。apache
一、MyBatis的做用:session
簡單的說MyBatis實現的是DAO層,經過XML文件配置SQL,映射到PO。mybatis
二、須要準備的引用包oracle
mybatis-3.2.8.jar:myBatis框架使用app
ojdbc6.jar:數據庫鏈接框架
三、結構分析
1)須要配置文件鏈接數據庫;
2)須要公共方法提供數據庫鏈接的使用;
3)PO:持久對象
4)數據查詢SQL配置XML文件;
5)對外接口;
四、結構搭建
示例以下:
文件說明:
1)數據庫配置文件: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> <environments default="development"> <environment id="development"> <transactionManager type="jdbc"></transactionManager> <dataSource type="POOLED"> <property name="driver" value="oracle.jdbc.OracleDriver"/> <property name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:orcl"/> <property name="username" value="phonesurvey"/> <property name="password" value="world"/> </dataSource> </environment> </environments> <mappers> <mapper resource="nankang/dao/agentMapper.xml" /> </mappers> </configuration>
兩個配置:
1、鏈接數據庫;
2、系統mapper註冊;
2)使用鏈接通用文件:SqlSessionHelper.java
package nankang.util; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; public class SqlSessionHelper { public static SqlSessionFactory getSessionFactory(){ SqlSessionFactory sessionFactory = null; String resource= "nankang/configuration.xml"; try{ sessionFactory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsReader(resource)); }catch(Exception ex){ ex.printStackTrace(); } return sessionFactory; } }
使用SqlSessionFactory建立鏈接。
3)PO對象:
package nankang.po; public class Agent { private String agentId; private String companyCode; private String loginName; private String name; public String getAgentId() { return agentId; } public void setAgentId(String agentId) { this.agentId = agentId; } public String getCompanyCode() { return companyCode; } public void setCompanyCode(String companyCode) { this.companyCode = companyCode; } public String getLoginName() { return loginName; } public void setLoginName(String loginName) { this.loginName = loginName; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
這個沒什麼好說的,就是一個對象及屬性。
若是查詢SQL中沒有查找對應的字段,則爲空。
4)PO的映射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"> <mapper namespace="nankang.dao.AgentMapper"> <select id="selectAgentById" parameterType="HashMap" resultType="nankang.po.Agent"> select agentId,companyCode,loginName,name from Agent where AgentId=#{id} </select> </mapper>
package nankang.dao; import nankang.po.Agent; public interface AgentMapper { public Agent selectAgentById(String Id); }
對外使用接口,XML文件至關於實現;
SQL語句,查詢的多,也不要緊,多餘的字段不會映射。
5)使用:
package nankang.test; import nankang.dao.AgentMapper; import nankang.po.Agent; import nankang.util.SqlSessionHelper; import org.apache.ibatis.session.SqlSession; public class test { /** * @param args */ public static void main(String[] args) { try{ SqlSession sqlSession = SqlSessionHelper.getSessionFactory().openSession(); AgentMapper agentMapper = sqlSession.getMapper(AgentMapper.class); Agent agent = agentMapper.selectAgentById("SHNKAG0000000005"); System.out.println(agent.getName()); }catch(Exception ex){ System.out.println(ex.getMessage()); } } }
首先建立一個SQLSession,而後使用這個Session建立Mapper,這塊應該放在BO中;
五、示例下載: http://pan.baidu.com/s/1pJmeYpX (Fish的分享>MyBatis>myBatis1.rar)