MariaDB Java客户端 1.1.3 发布
MariaDB项目很高兴地宣布 MariaDB Java客户端 1.1.3 现已发布。这是一个稳定版 (GA)。有关此版本的详细信息,请参阅版本说明和变更日志;有关该客户端的一般信息,请参阅 AskMonty 知识库中的关于 MariaDB Java客户端页面。
新功能
- 在 Windows 上,如果服务器启用,现在可以使用命名管道。要使用命名管道连接到服务器,请传递 URL 参数或属性 pipe=<pipe_name>。管道文件名应在没有
\pipe<machine>
前缀的情况下传递。(CONJ-36)
- 现在可以使用 serverSslCert 对自签名证书进行 SSL 验证(提供服务器证书的 CA 证书)。这允许在使用自签名证书时避免 SSL 握手错误(不受信任的 CA),并且比现有的 trustServerCertificate 选项更安全。(CONJ-48)
此版本中修复的错误
修复的部分错误包括以下内容:
- 将
PacketOutputStream.startPacket()
中的断言更改为 IOException,以便可以捕获它。“Last packet not finished” 条件可能发生,如果底层流损坏(例如写入操作失败)。(CONJ-34)
- 如果自定义
SocketFactory
创建了一个已连接的套接字,则不执行 Socket.connect()。(CONJ-37)
- 在多个线程同时使用单个连接的场景中,确保
MySQLCallableStatement.execute()
中的适当锁定。在 3 个操作期间保持连接锁定——设置参数、执行语句和读取输出参数。(CONJ-38)
- 对于多行插入,
getGeneratedKeys()
将返回包含多个条目的 ResultSet。(CONJ-39)
- 现在可以将
java.util.Date
传递给 PreparedStatement.setObject()。(CONJ-40)
- 允许时间转义中缺少空格,以更好地兼容 ConnectorJ (CONJ-42)
- 如果在查询字符串中至少包含一个占位符,在查询执行之前调用
PreparedStatement.getResultSetMetaData()
会抛出异常。(CONJ-43)
DatabaseMetaData.getPrimaryKeys()
在 KEY_SEQ 列中返回了不正确的值。(CONJ-41)
- (性能增强) 更改了
DatabaseMetadata.getImportedKeys()
不使用信息模式,而是解析“show create table”的输出。这显著加快了涉及 Hibernate 的多个场景。(CONJ-35)
- 修复了字符列的
ResultSet.getDisplaySize()
– 由于 UTF-8 的使用,它比预期大 3 倍(按字节计算大小,而不是按字符计算大小)。
- 修复了预处理语句解析代码中的错误(跳过反斜杠 ” 后面的下一个字符)。(CONJ-44)
- 修复
Statement.executeBatch()
方法抛出BatchUpdateException
,符合 JDBC 规范。(CONJ-47)