今天在做项目过程中,查询一个表中数据时总碰到这个问题: java.sql.SQLException:Value '0000-00-00' can not be represented as java.sql.Date 查看数据库,发现某一字段为date类型,字段值为'0000-00-00' ;查看代码,我用的是rs.getString("字段名");于是把代码改成getDate("字段名");问题依旧! 查找资料发现:在数据库连接url后面加上ze…
1.如果mysql中使用了date类型,并且默认值为'0000-00-00', 那么数据库中的'0000-00-00 00:00:00', '0000-00-00', '00:00:00'这三个值是相等的,都为空 2.在java中使用ResultSet的getString()返回结果时,如果出现如下异常: java.sql.SQLException:Value '0000-00-00' can not be represented as java.sql.Date 那么在mysql连接…
在开发过程中我们一般需要记住某条记录的创建时间,在MySQL中如果使用dateTime类型的话,无法设定默认值,我们可以采用timestamp类型来记录创建时间.但是随之而来的有个问题,比如说你的这个时间只想记录创建时间而不想随着记录update时发生更改(一般这种情况可能会发生在根据创建时间来做查询),而这个默认的timestamp为了提供方便是在update之后时间也会发生改变,可以通过以下语句来修改字段类型,强制让它update时不更改. ALTER TABLE `tablename`…
SELECT COUNT(*) TABLES, table_schema FROM information_schema.TABLES WHERE table_schema = '数据库' GROUP BY table_schema; 这还是头一次接触information_schema这个数据库, information_schema数据库是MySQL自带的,它提供了访问数据库元数据的方式.什么是元数据呢?元数据是关于数据的数据,如数据库名或表名,列的数据类型,或访问权限等.有些时候用于表…
可直接在mysql命令行执行:show engine innodb status\G;(只能通过cmd或者shell登录mysql) 查看造成死锁的sql语句,分析索引情况,然后优化sql然后show processlist; show status like '%lock%' show OPEN TABLES where In_use > 0; 这个语句记录当前锁表状态 另外可以打开慢查询日志,linux下打开需在my.cnf的[mysqld]里面加上以下内容: slow_query_log…