写的程序有问题,把你的程序贴出来看看哦。

解决方案 »

  1.   

    程序有问题吗?怎么用ant好用啊,数据都写入数据库了,而且这不是我写的阿,是按照上面那个地址的源代码阿,只是改了包名
    -------------------jdogenie.Main----------------------------
    package jdogenie;import javax.jdo.*;
    import java.util.*;
    import java.io.IOException;public class Main {    public static void main(String[] args) throws Exception {
            System.out.println("开始测试功能……");        inputCard("张三","东风东路311号","223003433995431237","020-38864157",500.00f,5000.0f);
            System.out.println("信用卡已创建!");    }    /**
         * 本方法专用于获取JDO API的核心对象:存储管理器PersistenceManager
         */
        public static PersistenceManager getPersistenceManager() {
            if(pmf == null) {
                java.util.Properties p = new java.util.Properties();
                try {
                    //从配置文件读入配置信息
                    p.load(Main.class.getClassLoader().getResourceAsStream("/creditSys.jdogenie"));            } catch(IOException ex) {
                    throw new RuntimeException(ex);
                }
                pmf = JDOHelper.getPersistenceManagerFactory(p);
            }        return pmf.getPersistenceManager();
        }
        private static PersistenceManagerFactory pmf;public static CreditCard inputCard(
            String name,
            String address,
            String idcard,
            String phone,
            float initialBalance,
            float allowOverDraft
        ) throws IdCardDuplicatedException {        CreditCard cc = new CreditCard();
            cc.setName(name);
            cc.setAddress(address);
            cc.setIdcard(idcard);
            cc.setPhone(phone);
            cc.setInitialBalance(initialBalance);
            cc.setAllowOverDraft(allowOverDraft);        //以下是自动产生的信息:
            cc.setCreateTime(new Date());
            cc.setBalance(initialBalance); //使刚创建后的余额等于初始余额,这是典型的业务逻辑        //下面将新信用卡保存到数据库,注意其中的JDO API。
            PersistenceManager pm = getPersistenceManager();
            //先检测是否已经有该身份证注册的信用卡存在:
            Query q = pm.newQuery(CreditCard.class,"idcard==_newIdcard");
            q.declareParameters("String _newIdcard");
            Collection existCards = (Collection)q.execute(idcard);
            if(existCards.iterator().hasNext()) {
                throw new IdCardDuplicatedException(); //已经该身份证号存在
            }        //身份证号没重复,以下保存该信用卡对象:
            pm.currentTransaction().begin(); //每次对数据库的更新必须放到事务中
            pm.makePersistent(cc);
            pm.currentTransaction().commit(); //提交新对象
            pm.close(); //释放JDO资源        return cc;
        }    public static class IdCardDuplicatedException extends RuntimeException {}}
    ----------------------------------------------------