5.1版本符合JDBC3.0和JDBC4.0规范
跟MySQL4.1-5.7兼容
5.1.21以后支持JDK7的JDBC4.1规范
在MySQL4.1之前,是不支持utf8的
com.mysql.jdbc.Driver是推荐的Driver,org.gjt.mm.mysql.Driver是以前的
JdbcURL格式:
jdbc:mysql://[host:3306].../[database] »
[?propertyName1][=propertyValue1][&propertyName2][=propertyValue2]...
没指定database的话,建议使用Connection.setCatalog(),而不要用sql语句"use database"
容灾主机只支持自动提交模式,因为事务是无法保证的
并且只能进行只读查询
配置连接属性的几种方法:
1.java.sql.DataSource.setXXX()
2.DriverManager.getConnection(Properties)传进去
3.DriverManager.getConnection(URL),或java.sql.DataSource.setURL()
可以是以下属性:
user,passwod ,passwordCharacterEncoding
connectTimeout=0 毫秒 interactiveClient=false 闲置时间取代等待时间
allowMultiQueries =false ,语句中不能有分号,对批处理无影响
defaultFetchSize =0
useUnicode 默认true
characterEncoding 默认自动检测
characterSetResults
continueBatchOnError =true
emptyStringsConvertToZero =true ,空字符串会变成 ‘0’
maxRows =-1 返回的行数无限制
tinyInt1isBit =true, transformedBitIsBoolean =false
useTimezone,在客户端和服务器间自动转换时区,默认false
zeroDateTimeBehavior=exception, 日期全0认为是异常,可选"exception", "round" and "convertToNull".
通过命名管道会比tcp/ip方式快30%-50%,不过windows下会更差
Connection.isClosed()方法只会检测是否调用过close()方法
想真正检测可以运行个sql,抛异常就是关闭了
外键只能在InnoDB上使用
尽量不要用Statement.cancel()
MySQL不支持游标
character_set_server系统变量,设置server的编码
在客户端设置编码时,要用java风格的,UTF-8,GBK,
在服务器设置编码时,要用mysql风格的,utf8,gbk