`
zjnbshifox
  • 浏览: 313087 次
  • 性别: Icon_minigender_1
  • 来自: 宁波
社区版块
存档分类
最新评论

iBatis使用(1)之照猫画虎

    博客分类:
  • Java
阅读更多
1,在web.xml加入Spring的Config配置
xml 代码
 
  1. <context-param>  
  2.   <param-name>contextConfigLocation</param-name>  
  3.   <param-value>  
  4.    /WEB-INF/dataAccess.xml  /WEB-INF/applicationContext.xml  
  5.   </param-value>  
  6.  </context-param>  
2,用spring的MVC,还要加入Spring的Dispatcher,(这里的servlet-name指定了MVC的配置文件ibatis-servlet.xml,也是一个spring的配置文件)
xml 代码
 
  1. <servlet>  
  2.   <servlet-name>ibatis</servlet-name>  
  3.   <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
  4.   <load-on-startup>2</load-on-startup>  
  5.  </servlet>  
  6.  <servlet-mapping>  
  7.   <servlet-name>ibatis</servlet-name>  
  8.   <url-pattern>*.go</url-pattern>  
  9.  </servlet-mapping>  
3,dataAccess.xml中加入iBatis的配置
xml 代码
 
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">  
  3. <beans>  
  4.  <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">  
  5.   <property name="driverClassName" value="org.gjt.mm.mysql.Driver"/>  
  6.   <property name="url" value="jdbc:mysql://localhost:3306/pulan?useUnicode=true&amp;&amp;characterEncoding=GBK"/>  
  7.   <property name="username" value="root"/>  
  8.   <property name="password" value=""/>  
  9.  </bean>  
  10.  <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">  
  11.   <property name="dataSource" ref="dataSource"/>  
  12.  </bean>  
  13.  <bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">  
  14.   <property name="configLocation" value="WEB-INF/sql-map-config.xml"/>  
  15.   <property name="dataSource" ref="dataSource"/>  
  16.  </bean>  
  17.    
  18.  <bean id="lineDAO" class="dao.ibatis.dao.LineDAOImpl">  
  19.   <property name="sqlMapClient" ref="sqlMapClient"/>  
  20.  </bean>  
  21.    
  22.  <bean id="stationDAO" class="dao.ibatis.dao.StationDAOImpl">  
  23.   <property name="sqlMapClient" ref="sqlMapClient"/>  
  24.  </bean>  
  25.    
  26.  <bean id="meterDAO" class="dao.ibatis.dao.MeterDAOImpl">  
  27.   <property name="sqlMapClient" ref="sqlMapClient"/>  
  28.  </bean>  
  29.  <bean id="dataDAO" class="dao.ibatis.dao.DataDAOImpl">  
  30.   <property name="sqlMapClient" ref="sqlMapClient"/>  
  31.  </bean>  
  32. </beans>  
sql-map-client.xml配置
xml 代码
 
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE sqlMapConfig PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN"  
  3.     "http://www.ibatis.com/dtd/sql-map-config-2.dtd">  
  4. <sqlMapConfig>  
  5.  <sqlMap resource="dao/ibatis/maps/Line.xml"/>  
  6.  <sqlMap resource="dao/ibatis/maps/Station.xml"/>  
  7.  <sqlMap resource="dao/ibatis/maps/Meter.xml"/>  
  8.  <sqlMap resource="dao/ibatis/maps/Data.xml"/>  
  9.    
  10. </sqlMapConfig>  
5,Station.xml
xml 代码
 
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-2.dtd">  
  3. <sqlMap namespace="Station">  
  4.   <resultMap id="result" class="dao.ibatis.db.Station">  
  5.    <result property="stationID" column="StationID" columnIndex="1"/>  
  6.    <result property="stationNumber" column="StationNumber" columnIndex="2"/>  
  7.    <result property="stationName" column="StationName" columnIndex="3"/>  
  8.    <result property="stationAddress" column="StationAddress" columnIndex="4"/>  
  9.    <result property="stationType" column="StationType" columnIndex="5"/>  
  10.    <result property="assessType" column="assessType" columnIndex="6"/>  
  11.    <result property="transformerCapacity" column="TransformerCapacity" columnIndex="7"/>  
  12.    <result property="lineID" column="LineID" columnIndex="8"/>   
  13.   </resultMap>  
  14.   
  15.   <select id="getStationList" resultMap="result">  
  16.     select *  from station  
  17.   </select>  
  18.   <select id="getStationListByLineID"   
  19.    parameterClass="java.lang.String"  
  20.    resultMap="result">  
  21.     select *  from station  where `LineID` = #value#     
  22.   </select>  
  23.     
  24. </sqlMap>  
6,Station.java ----POJO
java 代码
 
  1. package dao.ibatis.db;  
  2. import java.io.Serializable;  
  3. public class Station implements Serializable {  
  4.     
  5.    private int stationID;  
  6.    private String stationNumber;  
  7.    private String stationName;  
  8.    private String stationAddress;  
  9.    private int stationType;  
  10.    private int assessType;  
  11.    private int transformerCapacity;  
  12.    private int lineID;  
  13.  public int getAssessType() {  
  14.   return assessType;  
  15.  }  
  16.  public void setAssessType(int assessType) {  
  17.   this.assessType = assessType;  
  18.  }  
  19.  public int getLineID() {  
  20.   return lineID;  
  21.  }  
  22.  public void setLineID(int lineID) {  
  23.   this.lineID = lineID;  
  24.  }  
  25.  public String getStationAddress() {  
  26.   return stationAddress;  
  27.  }  
  28.  public void setStationAddress(String stationAddress) {  
  29.   this.stationAddress = stationAddress;  
  30.  }  
  31.  public int getStationID() {  
  32.   return stationID;  
  33.  }  
  34.  public void setStationID(int stationID) {  
  35.   this.stationID = stationID;  
  36.  }  
  37.  public String getStationName() {  
  38.   return stationName;  
  39.  }  
  40.  public void setStationName(String stationName) {  
  41.   this.stationName = stationName;  
  42.  }  
  43.  public String getStationNumber() {  
  44.   return stationNumber;  
  45.  }  
  46.  public void setStationNumber(String stationNumber) {  
  47.   this.stationNumber = stationNumber;  
  48.  }  
  49.  public int getStationType() {  
  50.   return stationType;  
  51.  }  
  52.  public void setStationType(int stationType) {  
  53.   this.stationType = stationType;  
  54.  }  
  55.  public int getTransformerCapacity() {  
  56.   return transformerCapacity;  
  57.  }  
  58.  public void setTransformerCapacity(int transformerCapacity) {  
  59.   this.transformerCapacity = transformerCapacity;  
  60.  }  
  61.      
  62.      
  63. }  
7,StationDAO,StationDAOImpl数据访问
java 代码
 
  1. package dao.ibatis.dao;  
  2. import java.util.List;  
  3. public interface StationDAO {  
  4.  public List getStationList(int LineID);  
  5. }  
  6.    
  7. package dao.ibatis.dao;  
  8. import java.util.List;  
  9. import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;  
  10. public class StationDAOImpl extends SqlMapClientDaoSupport implements  
  11.   StationDAO {  
  12.  public List getStationList(int LineID) {  
  13.   // TODO Auto-generated method stub  
  14.   if(LineID <= 0){  
  15.    return getSqlMapClientTemplate().queryForList("getStationList"null);  
  16.   }else{  
  17.    return getSqlMapClientTemplate().queryForList("getStationListByLineID", String.valueOf(LineID));  
  18.   }  
  19.  }  
  20. }  
ibatis-serlet.xml定义动作
xml 代码
 
  1. <bean name="/listStation.go" class="net.fox.web.ListStationController">  
  2.   <property name="ibatis" ref="ibatis"/> //这里的ibatis不是servlet名字,而是一个Spring的bean  
  3.    //定义在applicationContext.xml里  
  4.  </bean>  
9。ibatis(property)
xml 代码
 
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">  
  3. <beans>  
  4.  <bean id="baseTransactionProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" abstract="true">  
  5.   <property name="transactionManager"><ref bean="transactionManager"/></property>  
  6.   <property name="transactionAttributes">  
  7.    <props>  
  8.     <prop key="insert*">PROPAGATION_REQUIRED</prop>  
  9.     <prop key="update*">PROPAGATION_REQUIRED</prop>  
  10.     <prop key="*">PROPAGATION_REQUIRED,readOnly</prop>  
  11.    </props>  
  12.   </property>  
  13.  </bean>  
  14.  <bean id="ibatis" parent="baseTransactionProxy">  
  15.   <property name="target">  
  16.    <bean class="net.fox.IBatisImpl">  
  17.     <property name="lineDAO" ref="lineDAO"/>  
  18.     <property name="stationDAO" ref="stationDAO"/>  
  19.     <property name="meterDAO" ref="meterDAO"/>  
  20.     <property name="dataDAO" ref="dataDAO"/>  
  21.    </bean>  
  22.   </property>  
  23.  </bean>  
  24.    
  25. </beans>  
10.ListStationController.java
java 代码
 
  1. package net.fox.web;  
  2. import java.util.ArrayList;  
  3. import java.util.HashMap;  
  4. import java.util.List;  
  5. import java.util.Map;  
  6. import javax.servlet.http.HttpServletRequest;  
  7. import javax.servlet.http.HttpServletResponse;  
  8. import net.fox.IBatisImpl;  
  9. import org.springframework.web.servlet.ModelAndView;  
  10. import org.springframework.web.servlet.mvc.Controller;  
  11. import dao.ibatis.db.Station;  
  12. public class ListStationController implements Controller {  
  13.   private IBatisImpl ibatis;  
  14.     
  15.     
  16.     
  17.   public void setIbatis(IBatisImpl ibatis) {  
  18.    this.ibatis = ibatis;  
  19.   }  
  20.  public ModelAndView handleRequest(HttpServletRequest arg0,  
  21.    HttpServletResponse arg1) throws Exception {  
  22.   int LineID = Integer.parseInt(arg0.getParameter("line"));  
  23.   Map model = new HashMap();  
  24.   List l1 = this.ibatis.getStationDAO().getStationList(LineID);  
  25.   model.put("stationList", l1);  
  26.   return new ModelAndView("ListStation",model);  
  27.  }  
  28. }  
  29.    
ListStation.jsp (MVC 中的V)
xml 代码
 
  1. <%@page contentType="text/html;charset=GBK"%>  
  2. <%@ taglib prefix="c" uri="/WEB-INF/tld/c.tld" %>  
  3. <%@ taglib prefix="fmt" uri="/WEB-INF/tld/fmt.tld" %>  
  4. <html><head><title>数据查看</title>  
  5. <meta content="text/html; charset=GBK" http-equiv="Content-Type" />  
  6. <META HTTP-EQUIV="Cache-Control" CONTENT="max-age=0">  
  7. <META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">  
  8. <meta http-equiv="expires" content="0">  
  9. <META HTTP-EQUIV="Pragma" CONTENT="no-cache">  
  10. </head>  
  11. <body bgcolor="white">  
  12. <center>  
  13.   <font size="4"><b>台区列表</b></font>  
  14. </center>  
  15. <form action="<c:url value="/listMeter.go"/>method="post">  
  16. <table align="center" bgcolor="#008800" border="0" cellspacing="2" cellpadding="3">  
  17.   <tr bgcolor="#CCCCCC">  <td><b>选择台区</b></td>  </tr>  
  18.   <tr bgcolor="#FFFF88"><td>  
  19.    <select name="station">  
  20.   <c:forEach var="station" items="${stationList}">    
  21.    <option value="<c:out value="${station.stationID}"/>"><c:out value="${station.stationName}"/></option>  
  22.   </c:forEach>  
  23.  </select>  
  24. </td>  
  25. </tr>  
  26. <tr><td><input type="submit" value="OK"/></td></tr>     
  27. </form>  
  28. </table>  
  29. <%@ include file="footer.jsp" %>  
总结:基本上是依靠Spring自带的jpetStore例子来做的,有几个问题,使用的TAGLIb是需要到apache的网站上下载,还有要用到的有cglib,commons,iBatis的jar,cglib是一定要用的
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics