最近项目中需要写一个小程序 将数据库的数据转存到redis 中,下面是简单的demo 用到了两个数据源 一个redis
package com.xc.main;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.jfinal.plugin.activerecord.ActiveRecordPlugin;
import com.jfinal.plugin.activerecord.Db;
import com.jfinal.plugin.activerecord.Record;
import com.jfinal.plugin.druid.DruidPlugin;
import com.jfinal.plugin.redis.Cache;
import com.jfinal.plugin.redis.Redis;
import com.jfinal.plugin.redis.RedisPlugin;
public class AppRedis {
static int m=0;//此变量是为了切换数据源
public static void main(String[] args) {
RedisPlugin rp = new RedisPlugin("lenglh_hal", "127.0.0.1");
rp.start();
Cache redis=Redis.use();
if(m==0){
String jdbcUrl = "jdbc:mysql://localhost:3306/xc-cool-app?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull";
DruidPlugin druidPlugin = new DruidPlugin(jdbcUrl,"root", "");
druidPlugin.start();
ActiveRecordPlugin arp = new ActiveRecordPlugin(druidPlugin);
arp.start();
List<Record> list=Db.find("select deviceId,status from xc_cool_device");
for(Record r:list){
redis.set(r.get("deviceId"), r.get("status"));
System.err.println(r.get("deviceId")+"===>"+ r.get("status"));
}
String sql="select r.id ,d.deviceId,r.channelId,r.compareType,r.threshold from xc_cool_alarm_rule r "
+" INNER JOIN xc_cool_device d on d.id=r.deviceId";
List<Record> rules=Db.find(sql);
for(Record r:rules){
Map<Object, Object> rule = new HashMap<Object,Object>();
rule.put("ruleId", r.get("id"));
rule.put("type", r.get("compareType"));
rule.put("threshold", r.get("threshold"));
rule.put("status", false);
rule.put("value", "-999");
redis.hset("R_"+r.getStr("deviceId")+"_"+r.getInt("channelId"), r.get("id"), rule);
System.err.println("R_"+r.getStr("deviceId")+"_"+r.getInt("channelId")+"---"+r.get("id")+"--"+rule);
}
arp.stop();
m=1;
}
//切换数据源
if(m==1){
String jdbcUrlHal = "jdbc:mysql://localhost:3306/xc-cool-hal?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull";
DruidPlugin druidPluginhal = new DruidPlugin(jdbcUrlHal,"root", "");
druidPluginhal.start();
ActiveRecordPlugin arphal = new ActiveRecordPlugin(druidPluginhal);
arphal.start();
List<Record> channel=Db.find("select deviceId,channelId,status from xc_cool_rds_channel");
for(Record r:channel){
redis.set("C_"+r.getStr("deviceId")+"_"+r.getInt("channelId"), r.get("status"));
System.err.println("C_"+r.getStr("deviceId")+"_"+r.getInt("channelId")+"===>"+ r.get("status"));
}
m=3;
arphal.stop();
}
}
}
666导航网 可以自由收藏管理个人常用网址的便捷上网工具