MyBatis 多对多 处理

mybatis3.0添加了association和collection标签专门用于对多个相关实体类数据进行级联查询,但仍不支持多个相关实体类数据的级联保存和级联删除操作。因此在进行实体类多对多映射表设计时,需要专门建立一个关联对象类对相关实体类的关联关系进行描述。下文将以“User”和“Group"两个实体类之间的多对多关联映射为例进行CRUD操作。

建立user表,对应实体类"User",建表语句如下:
<!--StartFragment-->

[crayon[......]

阅读全文»

Mybatis select返回值为map时,选取表字段的两列作为key,value

最近需要用到Mybatis中查询结果集为Map的功能,查了好多资料,最终搞定。其实只需要重写ResultHandler接口,,然后用SqlSession 的select方法,将xml里面的映射文件的返回值配置成 HashMap 就可以了。具体过程如下

1、先看看xml文件怎么配置

2、sql

3、重写org.apache.ibatis.session 中Result[......]

阅读全文»

Gradle引入net.sf.json失败的处理方法

最近使用Gradle引入net.sf.json-lib时,发现根本下载不了,如下所示:

经了解,有些jar包区分jdk版本,发现此jar包需要加版本号(其他类似的jar包也需要这样处理),故正确的引入方式如下:

另外使用maven引入此jar包时,pom.xml中要加上classifier标签指定jdk版本,如下:

阅读全文»

Java 程序与 Office Web Apps 整合

想要将自己的程序与Office Web Apps整合,关键在于提供如下两个接口:

1、CheckFileInfo服务,此服务会返回文件的基本信息

详情可参考[MS-WOPI] section3.3.5.1.1 章节

2、GetFile服务,此服务根据上一个服务返回的基本信息返回对应文件的数据流

详情可参考[MS-WOPI] section3.3.5.3.1 章节。

因此,只需要实现这两个接口即可保证office文档的在线浏览。我这里以Java为例,演示我是如何将两者整合的。

CheckFileIn[......]

阅读全文»

利用ProxySQL实现MySQL的读写分离

一、Proxysql 的基础知识

ProxySQL是一个可以实现MySQL读写分离的轻量级工具。

ProxySQL的特点

  • 将所有配置保存写入到SQLit表中。
  • 支持动态加载配置,即一般可以在线修改配置,但有少部分参数还是需要重启来生效。
  • 支持query cache。
  • 支持对query的路由,可以针对某个语句进行分配去哪个实例执行。
  • 故障切换。
  • 过滤危险的SQL。
  • 不支持分表,可以分库,但是利用规则配置实现分表。

ProxySQL的管理配置

Proxysql中有四层配置:

  • runtime:运行中使用的[......]

阅读全文»

Xtrabackup备份和恢复MySQL

Xtrabackup是一个对InnoDB做数据备份的工具,支持在线热备份(备份时不影响数据读写),是商业备份工具InnoDB Hotbackup的一个很好的替代品。Xtrabackup中包含两个工具:

* xtrabackup – 用于热备份innodb, xtradb表的工具,不能备份其他表。

* innobackupex – 对xtrabackup封装的perl脚本,提供了myisam表备份的能力。

Xtrabackup可以做什么

* 在线(热)备份整个库的In[......]

阅读全文»

Percona Xtrabackup快速备份MySQL[转]

转载补充:

Xtrabackup是一个对InnoDB做数据备份的工具,支持在线热备份(备份时不影响数据读写),是商业备份工具InnoDB Hotbackup的一个很好的替代品。

Xtrabackup有两个主要的工具:xtrabackup、innobackupex

  • (1)xtrabackup只能备份InnoDB和XtraDB两种数据表,而不能备份MyISAM数据表
  • (2)innobackupex-1.5.1则封装了xtrabackup,是一个脚本封装,所以能同时备[......]

阅读全文»

PostgreSQL常用数据类型

一、数值类型:

下面是PostgreSQL所支持的数值类型的列表和简单说明:

名字 存储空间 描述 范围 smallint 2 字节 小范围整数 -32768 到 +32767 integer 4 字节 常用的整数 -2147483648 到 +2147483647 bigint 8 字节 大范围的整数 -9223372036854775808 到 9223372036854775807 decimal 变长 用户声明精度,精确 无限制 numeric 变长 用户声明精度,精确[......]

阅读全文»

gunicorn+gevent+nginx部署flask应用

这次部署是在ubuntu上进行的,在部署开始之前要做以下事情:

1.在你的linux系统上安装python-pip

2.安装virtualenv

3.切换到你的flask应用项目的根目录

4.进入虚拟环境后,安装你的flask应用的所有扩展包,最好把所有的扩展包写入requirements.txt

[crayo[......]

阅读全文»