首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 菜鸟求一段最简单的代码(struts+IBATIS[ABATOR生成代码]) [已结贴,结贴人:komen]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-24 16:52:38 楼主
    我用ABATOR生成的代码如下:
    KOMEN_TEST_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="KOMEN_TEST">
      <resultMap class="com.test.domain.Test" id="abatorgenerated_TestResult">
        <result column="ID" jdbcType="DECIMAL" property="id" />
        <result column="USERNAME" jdbcType="VARCHAR" property="username" />
        <result column="USERPASSWORD" jdbcType="VARCHAR" property="userpassword" />
        <result column="USERAGE" jdbcType="DECIMAL" property="userage" />
      </resultMap>
      <sql id="abatorgenerated_Example_Where_Clause">
       
        <iterate conjunction="or" prepend="where" property="oredCriteria" removeFirstPrepend="iterate">
          <isEqual compareValue="true" property="oredCriteria[].valid">
            (
            <iterate conjunction="and" prepend="and" property="oredCriteria[].criteriaWithoutValue">
              $oredCriteria[].criteriaWithoutValue[]$
            </iterate>
            <iterate conjunction="and" prepend="and" property="oredCriteria[].criteriaWithSingleValue">
              $oredCriteria[].criteriaWithSingleValue[].condition$
                #oredCriteria[].criteriaWithSingleValue[].value#
            </iterate>
            <iterate conjunction="and" prepend="and" property="oredCriteria[].criteriaWithListValue">
              $oredCriteria[].criteriaWithListValue[].condition$
              <iterate close=")" conjunction="," open="(" property="oredCriteria[].criteriaWithListValue[].values">
                #oredCriteria[].criteriaWithListValue[].values[]#
              </iterate>
            </iterate>
            <iterate conjunction="and" prepend="and" property="oredCriteria[].criteriaWithBetweenValue">
              $oredCriteria[].criteriaWithBetweenValue[].condition$
              #oredCriteria[].criteriaWithBetweenValue[].values[0]# and
              #oredCriteria[].criteriaWithBetweenValue[].values[1]#
            </iterate>
            )
          </isEqual>
        </iterate>
      </sql>
      <select id="abatorgenerated_selectByExample" parameterClass="com.test.domain.TestExample" resultMap="abatorgenerated_TestResult">
          select ID, USERNAME, USERPASSWORD, USERAGE from KOMEN.TEST
        <isParameterPresent>
          <include refid="KOMEN_TEST.abatorgenerated_Example_Where_Clause" />
          <isNotNull property="orderByClause">
            order by $orderByClause$
          </isNotNull>
        </isParameterPresent>
      </select>
      <delete id="abatorgenerated_deleteByExample" parameterClass="com.test.domain.TestExample">
          delete from KOMEN.TEST
        <include refid="KOMEN_TEST.abatorgenerated_Example_Where_Clause" />
      </delete>
      <insert id="abatorgenerated_insert" parameterClass="com.test.domain.Test">
            insert into KOMEN.TEST (ID, USERNAME, USERPASSWORD, USERAGE)
        values (#id:DECIMAL#, #username:VARCHAR#, #userpassword:VARCHAR#, #userage:DECIMAL#)
      </insert>
      <select id="abatorgenerated_countByExample" parameterClass="com.test.domain.TestExample" resultClass="java.lang.Integer">
          select count(*) from KOMEN.TEST
        <include refid="KOMEN_TEST.abatorgenerated_Example_Where_Clause" />
      </select>
      <update id="abatorgenerated_updateByExampleSelective">
          update KOMEN.TEST
        <dynamic prepend="set">
          <isNotNull prepend="," property="record.id">
            ID = #record.id:DECIMAL#
          </isNotNull>
          <isNotNull prepend="," property="record.username">
            USERNAME = #record.username:VARCHAR#
          </isNotNull>
          <isNotNull prepend="," property="record.userpassword">
            USERPASSWORD = #record.userpassword:VARCHAR#
          </isNotNull>
          <isNotNull prepend="," property="record.userage">
            USERAGE = #record.userage:DECIMAL#
          </isNotNull>
        </dynamic>
        <isParameterPresent>
          <include refid="KOMEN_TEST.abatorgenerated_Example_Where_Clause" />
        </isParameterPresent>
      </update>
      <update id="abatorgenerated_updateByExample">
          update KOMEN.TEST
        set ID = #record.id:DECIMAL#,
          USERNAME = #record.username:VARCHAR#,
          USERPASSWORD = #record.userpassword:VARCHAR#,
          USERAGE = #record.userage:DECIMAL#
        <isParameterPresent>
          <include refid="KOMEN_TEST.abatorgenerated_Example_Where_Clause" />
        </isParameterPresent>
      </update>
    </sqlMap>

    TestDAO.java

    package com.test.dao;

    import com.test.domain.Test;
    import com.test.domain.TestExample;
    import java.util.List;

    public interface TestDAO {
          void insert(Test record);
            List selectByExample(TestExample example);
            int deleteByExample(TestExample example);
            int countByExample(TestExample example);
            int updateByExampleSelective(Test record, TestExample example);
            int updateByExample(Test record, TestExample example);
    }
    TestDAOImpl.java

    package com.test.dao;

    import com.ibatis.dao.client.DaoManager;
    import com.ibatis.dao.client.template.SqlMapDaoTemplate;
    import com.test.domain.Test;
    import com.test.domain.TestExample;
    import java.util.List;

    public class TestDAOImpl extends SqlMapDaoTemplate implements TestDAO {
            public TestDAOImpl(DaoManager daoManager) {
            super(daoManager);
        }

            public void insert(Test record) {
            insert("KOMEN_TEST.abatorgenerated_insert", record);
        }

            public List selectByExample(TestExample example) {
            List list = queryForList("KOMEN_TEST.abatorgenerated_selectByExample", example);
            return list;
        }

            public int deleteByExample(TestExample example) {
            int rows = delete("KOMEN_TEST.abatorgenerated_deleteByExample", example);
            return rows;
        }

          public int countByExample(TestExample example) {
            Integer count = (Integer)  queryForObject("KOMEN_TEST.abatorgenerated_countByExample", example);
            return count.intValue();
        }

          public int updateByExampleSelective(Test record, TestExample example) {
            UpdateByExampleParms parms = new UpdateByExampleParms(record, example);
            int rows = update("KOMEN_TEST.abatorgenerated_updateByExampleSelective", parms);
            return rows;
        }
          public int updateByExample(Test record, TestExample example) {
            UpdateByExampleParms parms = new UpdateByExampleParms(record, example);
            int rows = update("KOMEN_TEST.abatorgenerated_updateByExample", parms);
            return rows;
        }

          private static class UpdateByExampleParms extends TestExample {
            private Object record;

            public UpdateByExampleParms(Object record, TestExample example) {
                super(example);
                this.record = record;
            }

            public Object getRecord() {
                return record;
            }
        }
    }


    Test.java

    package com.test.domain;

    public class Test {

    private Long id;
    private String username;
    private String userpassword;
    private Long userage;
    public Long getId() {
    return id;
    }

    public void setId(Long id) {
    this.id = id;
    }

    ......
    public Long getUserage() {
    return userage;
    }

    public void setUserage(Long userage) {
    this.userage = userage;
    }
    }

    如果 我要在Register.jsp的RegisterAction.java

    public ActionForward execute(ActionMapping mapping, ActionForm form,
    HttpServletRequest request, HttpServletResponse response) {
    RegisterForm registerForm = (RegisterForm) form;// TODO Auto-generated method stub
    //实例化一个TEST对象
    Test test=new Test();
    test.setUsername(registerForm.getUsername());
    test.setUserpassword(registerForm.getPassword());
    test.setUserage(Long.valueOf(registerForm.getAge()));


    String resource = "com/test/conf/sqlMapConfig.xml";   

                  //请问如果要把Test实例的数据写入数据库,这里的代码应该怎么写?谢谢了!   

    return null;
    }
    100  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-24 18:50:541楼 得分:0
    代码好长啊.........
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-24 18:52:302楼 得分:100
    先写一个类,把获得连接这段代码放入里边,
    Java code
    public class MyAppSqlConfig { private static final SqlMapClient sqlMap; static { try { String resource = "com/test/conf/sqlMapConfig.xml"; Reader reader = Resources.getResourceAsReader(resource); sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader); } catch (Exception e) { e.printStackTrace(); throw new RuntimeException( "Error initializing MyAppSqlConfig class. Cause: " + e); } } public static SqlMapClient getSqlMapInstance() { return sqlMap; } }

    以下是你的代码
    Java code
    public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { RegisterForm registerForm = (RegisterForm) form;// TODO Auto-generated method stub //实例化一个TEST对象 Test test=new Test(); test.setUsername(registerForm.getUsername()); test.setUserpassword(registerForm.getPassword()); test.setUserage(Long.valueOf(registerForm.getAge())); String resource = "com/test/conf/sqlMapConfig.xml"; //请问如果要把Test实例的数据写入数据库,这里的代码应该怎么写?谢谢了! [color=#FF0000] //得到连接 SqlMapClient sqlMap = MyAppSqlConfig.getSqlMapInstance(); int result = sqlMap.update("abatorgenerated_insert", test); if(result > 0) { System.out.println("插入成功"); }else { System.out.println("插入失败"); } //我看你生成的代码里有TestDAOImpl类,里边有insert方法,我不知道你那别的代码,所以,这部分我也不能调用 //你最好是能直接调用这个方法[/color] return null; }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-24 22:43:433楼 得分:0
    提示int result = sqlMap.update("abatorgenerated_insert", test);有错误啊
    如果用
    Java code
    SqlMapClient sqlMap = MyAppSqlConfig.getSqlMapInstance(); try{ sqlMap.insert("abatorgenerated_insert", tuser); }catch(Exception e) { } /**if(result > 0) { System.out.println("插入成功"); }else { System.out.println("插入失败"); } **/ return null;


    就没有任何输入和提示
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-24 22:48:554楼 得分:0
    Java code
    SqlMapClient sqlMap = MyAppSqlConfig.getSqlMapInstance(); try{ sqlMap.insert("abatorgenerated_insert", tuser); }catch(Exception e) { e.printStackTrace(); throw new RuntimeException( "Error initializing MyAppSqlConfig class. Cause: " + e); }


    用这个提示There is no statement named abatorgenerated_insert in this SqlMap.
    修改 删除 举报 引用 回复

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