Linux+MySQL+IDEA+DDD+MVC+Spring+Ibatis+Paoding-rose+Velocity+Maven+Git问题记录

一、Ibatis

(1)Ibatis的一个特性:命名优于配置

(2)c3p0连接池的一个问题:0000-00-00 00:00:00不能赋值

异常名:Cannot convert value '0000-00-00 00:00:00' from column 1 to TIMESTAMP

解决:jdbc.url=jdbc:mysql://10.248.31.54:3306/asset?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf8

在url后面加一句话:zeroDateTimeBehavior=convertToNull(红体部分)

原因:

java.util.Date,使其值为 '0000-00-00'是不可能的,最古老的日期应该是'0001-01-01 00:00:00'。MySQL通过jdbc转换时,就会遇到这个情况。

(3)Ibatis配置文件书写格式问题

1、 多表连接查询中的通配符

  <isNotEmpty property="category" prepend=" and ">
                t.category like '%$category$%'
     </isNotEmpty>

2、关系属性

  <result column="{id=template_id,status=status}" property="template" select="TTemplate.queryByMap" />

在queryByMap中不需要再写关系属性对应的数据库字段名,就是说标签中的sql语句可以不出现连接表的字段。

(4)CRUD

1、没有发现属性名

原因:注意column中的字段名一定要在sql语句中出现的,即网上常说的Resultset。

我遇到的问题是:在插入之后,ibatis会默认根据主键(selectPk)查询放到缓存里,所以我的执行过程有两个insert,select,结果集也有两个所以在写的时候,sql语句两个都要写完整。

(5)git

1、执行过程:

add-commit-push

作用分别是 add-添加索引 、commit-提交到本地库、push提交到远程库 提交时注意依赖关系和删除数据库主外键关系是一个道理

2、ssh -keygen -t rsa -C "emailname"

(6)判断为空的写法

按照大家的规则走(不是绝对的,常出现的地方记住就行了)

1、时间为空:    tasset.setBorrowTime(model.getBorrowTime() == null?new Date():model.getBorrowTime());三位运算符

2、对象为空: null!=dataObjects

原因:

不管是null!=object还是object!=null,在比较的时候都会读取一次object的值。
把null写左边其实可以防止编程出现的低级错误,你用不等于(!=)不好说明,改用等于。

if(object == null)这个语句有时候没注意就会写成:if(object = null)//少了个等号
这样在有的语言中编译是不会出错的,而在运行中结果就不知道了。。

但是你把null写在左边,null其实相当于一个常量,你对常量赋值编译的时候就会报错,这样就能防止这种错误的发生了:
if(a == 5) //这是比较
if(a = 5) //能执行,不过C#里有检测这种错误
if(5 = a) //编译就报错
(7)mysql命令
show processlist
show create table tablename
use databasename
show datatables
show  tables
flush privileges
insert into mysql.user(host,user,password) values ("localhost","username","password")
grant all privileges on "".* to username@localhost



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值