4
回答
Jfinal关于批量删除问题
终于搞明白,存储TCO原来是这样算的>>>   
import com.jfinal.plugin.activerecord.Db;
import com.jfinal.plugin.activerecord.Model;


public class PeculiarityValue extends Model<PeculiarityValue> {
	private static final long serialVersionUID = -4308744934835052495L;
	public static final PeculiarityValue PeculiarityValueDao=new PeculiarityValue();

		
	public  void dddddd(){
		Db.update("delete PeculiarityValue where prid=22");
	}
	public static void main(String[] args) {
		PeculiarityValue.PeculiarityValueDao.dddddd();
	}
	
	
	
}

执行的话.应该会吧PeculiarityValue表中所有prid=22的记录全部删除吧.


举报
ecp
发帖于3年前 4回/2K+阅
共有4个答案 最后回答: 3年前

引用来自“JFinal”的评论

与在数据库控制台执行 sql 是一样的效果
感谢您的回复.不过我这边直接在这个类里面右键run as  java appliaction的时候报错如下
Exception in thread "main" java.lang.NullPointerException
	at com.jfinal.plugin.activerecord.Db.update(Db.java:214)
	at com.mj100.model.PeculiarityValue.dddddd(PeculiarityValue.java:13)
	at com.mj100.model.PeculiarityValue.main(PeculiarityValue.java:16)

PeculiarityValue 已经在DefaultConfig中设置了

public void configPlugin(Plugins me) {
		C3p0Plugin c3p0Plugin = new C3p0Plugin(getProperty("jdbcUrl"),
				getProperty("user"), getProperty("password").trim());
		c3p0Plugin.setDriverClass("com.microsoft.sqlserver.jdbc.SQLServerDriver");
		
		me.add(c3p0Plugin);
		ActiveRecordPlugin arp = new ActiveRecordPlugin(c3p0Plugin);
		//设置方言
		arp.setDialect(new AnsiSqlDialect());
		//设置显示sql
		arp.setShowSql(true);
		arp.addMapping("Products",Products.class);
		arp.addMapping("Classify", Classify.class);
		arp.addMapping("PeculiarityValue", PeculiarityValue.class);		
		me.add(arp);	

	}

百思不得解,可能错哪里了呢



引用来自“JFinal”的评论

与在数据库控制台执行 sql 是一样的效果

引用来自“ecp”的评论

感谢您的回复.不过我这边直接在这个类里面右键run as  java appliaction的时候报错如下
Exception in thread "main" java.lang.NullPointerException
	at com.jfinal.plugin.activerecord.Db.update(Db.java:214)
	at com.mj100.model.PeculiarityValue.dddddd(PeculiarityValue.java:13)
	at com.mj100.model.PeculiarityValue.main(PeculiarityValue.java:16)

PeculiarityValue 已经在DefaultConfig中设置了

public void configPlugin(Plugins me) {
		C3p0Plugin c3p0Plugin = new C3p0Plugin(getProperty("jdbcUrl"),
				getProperty("user"), getProperty("password").trim());
		c3p0Plugin.setDriverClass("com.microsoft.sqlserver.jdbc.SQLServerDriver");
		
		me.add(c3p0Plugin);
		ActiveRecordPlugin arp = new ActiveRecordPlugin(c3p0Plugin);
		//设置方言
		arp.setDialect(new AnsiSqlDialect());
		//设置显示sql
		arp.setShowSql(true);
		arp.addMapping("Products",Products.class);
		arp.addMapping("Classify", Classify.class);
		arp.addMapping("PeculiarityValue", PeculiarityValue.class);		
		me.add(arp);	

	}




    虽然你在 DefaultConfig 中设置了,但是通过右键run as application时程序并未执行这段代码,调试一下便知,所以这段代码即便存在也完全没有起作用。单独使用 ActiveRecordPlugin 的方法见这里我给出的代码例子: http://www.oschina.net/question/173052_59956
--- 共有 5 条评论 ---
ecp回复 @JFinal : 感谢jfinal 3年前 回复
ecp回复 @JFinal : 放main方法里面不行.写到Controller里面.用浏览器调用就正常执行了. 3年前 回复
JFinal回复 @ecp : c3p0Plugin.start(); arp.start(); 这两个需要先调用 3年前 回复
ecpdbPro没有拿到.为null了 3年前 回复
ecp谢谢.我看下 3年前 回复
public void configPlugin(Plugins me) {
		C3p0Plugin c3p0Plugin = new C3p0Plugin(getProperty("jdbcUrl"),
				getProperty("user"), getProperty("password").trim());
		c3p0Plugin.setDriverClass("com.microsoft.sqlserver.jdbc.SQLServerDriver");
		c3p0Plugin.start();
		me.add(c3p0Plugin);
		ActiveRecordPlugin arp = new ActiveRecordPlugin(c3p0Plugin);
		arp.setDialect(new AnsiSqlDialect());
		arp.setShowSql(true);
		arp.addMapping("Products",Products.class);
		arp.addMapping("Classify", Classify.class);
		arp.addMapping("PeculiarityValue", PeculiarityValue.class);
		arp.start();
		me.add(arp);
		

	}

是这样子  看你的代码例子是这么写的

--- 共有 2 条评论 ---
ecp@JFinal 恩恩.我动手自己试验了.再次感谢79 3年前 回复
JFinal写在 configPlugin 就不再需要调用 start() 方法了,因为 jfinal 会自动调用 3年前 回复
顶部