2017年4月26日工作日记

  1. 用mysqldump来备份线上数据库
    需求:备份全部表结构,备份部分表数据;
    语句:
    bin/mysqldump -udbproxy -pdbproxy xlw>xlw.sql
    复制xlw这个数据库到xlw.sql文件
    bin/mysql -udbproxy -pdbproxy test_xlw < xlw.sql
    把xlw.sql文件还原到test_xlw数据库
    以上是操作是颠覆式备份和复原,也就是说如果原来test_xlw数据库中的数据会被清空后,再导入xlw数据库。这是因为,生成的xlw.sql文件中,在导入xlw数据库的a表之前,默认DROP TABLE IF EXISTS a; 可以通过–skip-add-drop-table取消drop语句
    bin/mysqldump -udbproxy -pdbproxy xlw --skip-add-drop-table a>xlw.sql
    但是这个语句单纯的去掉了drop语句,在重建数据库时,如果a表已经存在,会报错导致失败。如果想增量的重建数据库,还要通过其他途径。

    bin/mysqldump -udbproxy -pdbproxy -d xlw >xlw.sql 只导出表结构,不导出数据。
    bin/mysqldump -udbproxy -pdbproxy xlw a b c>xlwb.sql 把xlw数据库的a表,b表,c表导出数据到xlwb.sql

最后写了个脚本,定期备份。于是可以每次将备份数据放在指定文件夹中。

lastday=$(date -d last-day +%Y%m%d)
mkdir $lastday
echo $lastday
path="$PWD"
echo $path
bin/mysqldump -udbproxy -pdbproxy -d xlw >$path/$lastday/xlw.sql
bin/mysqldump -udbproxy -pdbproxy xlw a b c>$path/$lastday/xlw1.sql

有关mysqldump的参考链接http://www.cnblogs.com/qq78292959/p/3637135.html
https://jingyan.baidu.com/article/948f5924259516d80ef5f95e.html

2.mybatis部分
mybatis可以分为以下几个部分
a. xxMapper.xml文件,用标记语言来表示sql,每个标签的id对应xxMapper.java文件中的函数名。理论上,此xml文件要加入到mybatis的conf文件中

<mappers>        
        <!-- 注册orderMapper.xml文件, 
        xxxMapper.xml位于me.gacl.mapping这个包下,所以resource写成me/gacl/mapping/xxxMapper.xml-->
        <mapper resource="me/gacl/mapping/xxxMapper.xml"/>
</mappers>

但是用了generator插件后,无需再conf文件中声明了。
b. dao层的XXMapper.Java,定义了一些对数据库的基本操作,比如增删改查。
c. pojo.entity层生成了XXEntity.java和XXEntityExample.java文件,XXEntity.java顾名思义是根据数据库的表结构创立的数据结构,包含了表的各个字段;mentor说XXEntityExample.java文件主要是和查询语句的where条件有关,比如order by,distinct等等。
综上,我的理解是,dao层的Mapper.java文件是最上层,收到由用户拼接的pojo层的两个文件后,传递给dao.mapper层的xml文件具体去数据库操作。
今天在操作时候遇到一个坑,要操作某个数据库,但是该数据库有一个字段叫做“public”,也就是说和java的保留字冲突,用jetty起程序的时候报错绑定失败。处理方式是在用来生成以上三个文件的xml文件中

<table schema="a" tableName="a" domainObjectName="aEntity"
            enableCountByExample="true" enableUpdateByExample="true"
            enableDeleteByExample="true" enableSelectByExample="true"
            selectByExampleQueryId="true">
            <generatedKey column="id" sqlStatement="JDBC"/>
            <columnOverride column="public" property="ispublic" />          
        </table>

这样,将冲突的字段重命名,解决了问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值