一、mybatis生成插入后的uuid ,javaString类型的主键
1、使用selectKey 设置语句,设置keyProperty和keyColumn
select REPLACE(UUID(),"-","") 并设置order为插入之前BEFORE
这样会把得到的id设置到对应的属性上。
二、select和poll和epoll模型的区别
1、select和poll都是轮询机制,多路复用轮询的去询问,准备好的才去执行。
2、select有单个进程的描述符限制,poll是没有最大连接数的限制,基于链表来实现的
3、epoll模型是基于回调函数实现,异步的非阻塞。
epoll实现:
epoll在内核中会维护一个红黑树和一个双向链表,红黑树存放通过epoll_ctl方法向epoll对象中添加进来的事件,所以不需要每次调用epoll_wait都全量复制所有的事件结构。双向链表存放就绪的事件,所有添加到epoll中的事件都会与设备(网卡)驱动程序建立回调关系,也就是说,当相应的事件发生时会调用这个回调方法,这个回调方法在内核中叫ep_poll_callback,它会将发生的事件添加到rdlist双链表中。调用epoll_wait就会直接返回链表中的就绪事件,效率高。
select适合少量活跃连接,一般几千。
epoll适合大量不太活跃的连接。
如果有大量活跃连接可以使用多进程+select。