db 实现分表的功能

public class Log extends Model<Log> {

    private static final long serialVersionUID = 1L;
    public static final Log dao = new Log();
    
    
    public int findFenBiao(String username,Date date,String operation,String ip) {
        Long size = Db.queryLong("select count(*) from log");
        
        if (size < 100) {
            return Db.update("insert into log(username,date,operation,ip) values(?, ?, ?, ?)",username,date,operation,ip);
        } else {
            List<Record> update = Db.find("select count(*) from information_schema.tables where table_name = 'test'");
            if (update == null) {
                Db.update("create table test(id int(20) not null AUTO_INCREMENT, primary key (id), username varchar(80), date date, operation varchar(20), ip varchar(20))");
            }
            return Db.update("insert into test(username,date,operation,ip) values(?, ?, ?, ?)",username,date,operation,ip);
                    
        }
    }


   

评论区

RichardHe

2017-08-09 17:56

JFINAL看着就是爽。象用JDBC一样,根本就不管那些代码里不要写sql的胡话。

JFinal

2017-08-09 18:05

分库分表还是建议用专用的工具来做,例如这个项目:https://www.oschina.net/p/sharding-jdbc

我记得还有 mycat 这种项目也可以,对开发者是透明的,只需要把配置文件弄好就可以了