java编译的问题

博客围绕Java代码中SQL常量引用展开。代码里TRolesJdbcDao类引用sql.java中的常量,修改sql.java后替换sql.class错误依旧,需重新编译TRolesJdbcDao.java才生效,由此探讨编译后sql.class是否无用,以及是否符合Java规范。
public class TRolesJdbcDao extends BaseJdbcDao implements ITRolesDao {
protected static class TRolesUpdate extends SqlUpdate {
        protected TRolesUpdate(DataSource ds) {
            super(ds, Sql.PUB_TROLES_UPDATE);
            //参数类型设定 
            declareParameter(new SqlParameter(Types.VARCHAR));
            declareParameter(new SqlParameter(Types.VARCHAR));
            declareParameter(new SqlParameter(Types.CHAR));
            declareParameter(new SqlParameter(Types.INTEGER));
            declareParameter(new SqlParameter(Types.VARCHAR));
            declareParameter(new SqlParameter(Types.VARCHAR));
        }
}
sql .java 常量定义如下:
public static final String  PUB_TROLES_UPDATE="UPDATE  UPDATE PUB_TROLES SET ROLE_NAME=?,ROLE_ALIAS=?,IS_SYS=?,USERS_LIMIT=?,TEMPLATE_ID=? WHERE ROLE_ID=?";

由于写错了SQL语句,所有查询数据库会出错
但是当修改了sql.java后,把sql.class放到web应用里替换掉原来的类,错误依旧

只有把重新编译后的TRolesJdbcDao .java也重新拷贝才会生效

所有说明TRolesJdbcDao .java里面编译常量的时候是直接引用常量,而不是每次调用重新到sql.class里面取值

所以是不是说编译成功后,sql.class就相当于没用了???
发布后其实不需要该类了?
使用eclipse编译后是这个样子的,不知道是不是java规范里就是这样规定的
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值