首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 菜鸟100分问大家个STRUTS+IBATIS的问题 [已结贴,结贴人:komen]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • komen
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 揭帖率:
    发表于:2008-04-22 02:24:08 楼主
    我看到别人用STRUTS+IBATIS设计的源程序
    源文件中目录如下
    有个IFACE包(全是IFACE接口)
    有个COMMON包
    有个DOMAIN包
    有个DAO包(继承IFACE的DAO)
    有个CONF包(全是XML配制文件,包括一个SQLMAPCONFIG.XML文件)
    -->

      <!-- List the SQL Map XML files. They can be loaded from the
          classpath, as they are here (com.domain.data...) -->
      <sqlMap resource="com/conf/User.xml"/>
      <sqlMap resource="com/conf/PlayType.xml"/>
      <sqlMap resource="com/conf/lampMessage.xml"/>
      <sqlMap resource="com/conf/animalNumber.xml"/>
      <sqlMap resource="com/conf/waring.xml"/>

      <!--
      <sqlMap resource="com/portal/dbmgt/dao/conf/McapUserType.xml"/>
      -->
    </sqlMapConfig>
    请问这是用插件自动生成的

    而我自己用那个什么ABATOR插件,看网上视频做的 根本没这些东西
    只有一个DAO、DAOIMPL而且每个表独自生成一个SQLMAPCONFIG.XML文件

    而别人代码里确是一个文件包含了所有表的配制(如上代码) ,而且没用到SPRING 和HIBERNATE

    请大家说道说道,实在是不懂JAVA 以前是MS系的,跟大家请教了
    100  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • cjkwin
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-04-22 08:41:131楼 得分:0
    这些是手写的。
    " <sqlMap resource="com/conf/animalNumber.xml"/>" 是引用animalNumber.xml文件。
    在animalNumber.xml文件中写sql语句,和数据库交互,并返回结果。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • dexter701
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-04-22 09:04:052楼 得分:0
    IBATIS和HIBERNATE差不多!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • panxuan
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-04-22 09:04:593楼 得分:0
    使用了IBATIS就没有必要使用HIBERNATE了。
    你可以到url=http://ibatis.apache.org/]IBATIS[/url]下一些资料研究
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • panxuan
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-04-22 09:05:174楼 得分:0
    使用了IBATIS就没有必要使用HIBERNATE了。
    你可以到IBATIS下一些资料研究
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • nanjg
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-04-22 09:07:235楼 得分:0
    用ibatis的好处就是SQL语句 还有hibernate做啥呀
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • flm007
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-04-22 09:10:496楼 得分:0
    up!~
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • gefieder
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-04-22 09:13:457楼 得分:0
    关注中。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • cnjzy0106
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-04-22 09:49:168楼 得分:0
    引用 5 楼 nanjg 的回复:
    用ibatis的好处就是SQL语句 还有hibernate做啥呀
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • komen
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-04-22 21:24:129楼 得分:0
    大家误会我的意思了,或者是我没说明白
    我再问简单一点
    那个SqlMapConfig.xml文件 是手动编写的吗
    还是通过设置,Myeclipse可以自动生成?

    如下:PlayType.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="PlayType">

      <!-- Use type aliases to avoid typing the full classname every time. -->
      <typeAlias alias="PlayType" type="com.boss.ton.dao.domain.PlayType"/>
      <typeAlias alias="PlayTypeForm" type="com.boss.ton.app.playtype.PlayTypeForm"/>
      <!--
      ** code property */
    private String code;

    /** maxCompensatePrortion property */
    private Float maxCompensatePrortion;

    /** minTimeInterval property */
    private Float minTimeInterval;

        private Long minNumber;
       
    /** boardType property */
    private String boardType;

    /** name property */
    private String name;

    /** maxMoneyAmount property */
    private Long maxMoneyAmount;

      -->
    <!-- 以下是SQLMap -->
      <resultMap id="PlayTypeResult" class="PlayTypeForm">
        <result property="code" column="code"/>
        <result property="maxCompensatePrortion" column="maxCompensatePrortion"/>
        <result property="boardType" column="boardType"/>
        <result property="minTimeInterval" column="minTimeInterval"/>
        <result property="minNumber" column="minNumber"/>
        <result property="name" column="name"/>
    <result property="maxMoneyAmount" column="maxMoneyAmount"/>
      </resultMap>


     
        <select id="selectAllPlayType" parameterClass="PlayType"  resultMap="PlayTypeResult">
        select * from playtype order by orders
        </select>
       
      <update id="updatePlayType" parameterClass="PlayType">
      update playtype set
      maxCompensatePrortion =#maxCompensatePrortion#,
      minTimeInterval= #minTimeInterval#,
      minNumber= #minNumber#,
      maxMoneyAmount= #maxMoneyAmount#
      where code=#code#
      </update>
     

    </sqlMap>


    PlayTypeDAO.JAVA

    package com.boss.ton.dao;

    import java.sql.SQLException;
    import java.util.List;

    import com.boss.ton.dao.domain.PlayType;
    import com.boss.ton.iface.PlayTypeIface;

    public class PlayTypeDao extends SqlMapMgt implements PlayTypeIface {

    public List initPlayType() throws SQLException {
    // TODO Auto-generated method stub
    return sqlMapper.queryForList("selectAllPlayType");
    }

    public Integer canDelete(String id) throws SQLException {
    // TODO Auto-generated method stub
    return null;
    }

    public int updatePlayType(PlayType playType) throws SQLException {

    return sqlMapper.update("updatePlayType",playType);

    }

    }

    PlayTpe.java


    /*
    * Generated by MyEclipse Struts
    * Template path: templates/java/JavaClass.vtl
    */
    package com.boss.ton.dao.domain;

    import javax.servlet.http.HttpServletRequest;
    import org.apache.struts.action.ActionErrors;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionMapping;

    /**
    * MyEclipse Struts
    * Creation date: 04-12-2008
    *
    * XDoclet definition:
    * @struts.form name="playTypeForm"
    */
    public class PlayType extends ActionForm {
    /*
    * Generated fields
    */

    /** code property */
    private String code;

    /** maxCompensatePrortion property */
    private Float maxCompensatePrortion;

    /** minTimeInterval property */
    private Float minTimeInterval;

    private Long minNumber;

    /** boardType property */
    private String boardType;

    /** name property */
    private String name;

    /** maxMoneyAmount property */
    private Long maxMoneyAmount;

    /*
    * Generated Methods
    */

    /**
    * Method validate
    * @param mapping
    * @param request
    * @return ActionErrors
    */
    public ActionErrors validate(ActionMapping mapping,
    HttpServletRequest request) {
    // TODO Auto-generated method stub
    return null;
    }

    /**
    * Method reset
    * @param mapping
    * @param request
    */
    public void reset(ActionMapping mapping, HttpServletRequest request) {
    // TODO Auto-generated method stub
    }

    /**
    * Returns the code.
    * @return String
    */
    public String getCode() {
    return code;
    }

    /**
    * Set the code.
    * @param code The code to set
    */
    public void setCode(String code) {
    this.code = code;
    }

    /**
    * Returns the maxCompensatePrortion.
    * @return Float
    */
    public Float getMaxCompensatePrortion() {
    return maxCompensatePrortion;
    }

    /**
    * Set the maxCompensatePrortion.
    * @param maxCompensatePrortion The maxCompensatePrortion to set
    */
    public void setMaxCompensatePrortion(Float maxCompensatePrortion) {
    this.maxCompensatePrortion = maxCompensatePrortion;
    }

    /**
    * Returns the minTimeInterval.
    * @return Float
    */
    public Float getMinTimeInterval() {
    return minTimeInterval;
    }

    /**
    * Set the minTimeInterval.
    * @param minTimeInterval The minTimeInterval to set
    */
    public void setMinTimeInterval(Float minTimeInterval) {
    this.minTimeInterval = minTimeInterval;
    }

    /**
    * Returns the boardType.
    * @return String
    */
    public String getBoardType() {
    return boardType;
    }

    /**
    * Set the boardType.
    * @param boardType The boardType to set
    */
    public void setBoardType(String boardType) {
    this.boardType = boardType;
    }

    /**
    * Returns the name.
    * @return String
    */
    public String getName() {
    return name;
    }

    /**
    * Set the name.
    * @param name The name to set
    */
    public void setName(String name) {
    this.name = name;
    }

    /**
    * Returns the maxMoneyAmount.
    * @return Long
    */
    public Long getMaxMoneyAmount() {
    return maxMoneyAmount;
    }

    /**
    * Set the maxMoneyAmount.
    * @param maxMoneyAmount The maxMoneyAmount to set
    */
    public void setMaxMoneyAmount(Long maxMoneyAmount) {
    this.maxMoneyAmount = maxMoneyAmount;
    }

    public Long getMinNumber() {
    return minNumber;
    }

    public void setMinNumber(Long minNumber) {
    this.minNumber = minNumber;
    }
    }

    PlayTypeIfac.java

    package com.boss.ton.iface;

    import java.sql.SQLException;
    import java.util.HashMap;
    import java.util.List;

    import com.boss.ton.app.user.UserForm;
    import com.boss.ton.dao.domain.BaseDomain;
    import com.boss.ton.dao.domain.PlayType;
    import com.boss.ton.dao.domain.User;


    public interface PlayTypeIface  extends BaseIface{
    public List initPlayType() throws SQLException;
    public int updatePlayType(PlayType playType) throws SQLException;
    }


    以上这么多的文件不可能全部由手编写吧

    我想应该是自动生成所有文件 ,然后我们在修改和添加一些有用的代码.

    如果我想的没错的话?请问怎样才能让MYECLIPSE自动生成这些代码呢?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • komen
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-04-22 21:29:0910楼 得分:0
    PlayType.xml
    PlayTypeDAO.JAVA
    PlayTpe.java
    PlayTypeIfac.java

    每个表都要能生成这些文件,最后还有
    <!-- List the SQL Map XML files. They can be loaded from the 
          classpath, as they are here (com.domain.data...) -->
      <sqlMap resource="com/conf/User.xml"/>
      <sqlMap resource="com/conf/PlayType.xml"/>
      <sqlMap resource="com/conf/lampMessage.xml"/>
      <sqlMap resource="com/conf/animalNumber.xml"/>
      <sqlMap resource="com/conf/waring.xml"/>

      <!-- 
        <sqlMap resource="com/portal/dbmgt/dao/conf/McapUserType.xml"/>
      -->
    </sqlMapConfig>
    一个包含这些的

    该如何同时MYECLIPSE做成这样啊,我在网上找的视频 根本没这些,又没人问,大家会的估计看一下就明白了吧,我是菜鸟 没办法,请大家不要笑话
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • linpyi
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-04-22 21:39:0111楼 得分:40
    ibatis的xml一般都是自己手写的,也有一些高手自己写了一些简单映射bean和xml 的文件,不过还是自己写比较稳妥
    ibatis的好处在于自己写SQL,比较好操作


    ibatis  myeclipse好象没有自动加载的插件,方正我是没用过,都是自己手写的,
    复制,粘贴就好了
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • saint_tao
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-04-23 01:12:0512楼 得分:30
    ibatis的xml自己写比较爽,想要什么样的sql就怎么写。不一定要一个表对应一个xml。可以是一种业务对应一个xml
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • smartpoko
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-04-23 01:19:2013楼 得分:30
    正在用IBATIS做项目,DAO,XML,全部手写~~
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved