java链接Mysql异常:com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:
2013-03-12 15:57
519 查看
1963okcom.mysql.jdbc.exceptions.jdbc4.CommunicationsException: The driver was unable to create a connection due to an inability to establish the client portion of a socket.
This is usually caused by a limit on the number of sockets imposed by the operating system. This limit is usually configurable.
For Unix-based platforms, see the manual page for the 'ulimit' command. Kernel or system reconfiguration may also be required.
For Windows-based platforms, see Microsoft Knowledge Base Article 196271 (Q196271).
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
...........
出现该问题的主要原因:每次插入一条数据就建立一个connection,导致链接异常!
解决办法:将connection处理为静态,最后再关闭
import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; /** * 数据库工具类 * @author Administrator * */ public class DB { static Connection conn=null; /** * 通过读取配置文件取得数据库连接 * @return */ public static Connection getConnection() { if(conn==null){ JdbcInfo jdbcInfo=ConfigReader.getInstance().getJdbcInfo(); try { Class.forName(jdbcInfo.getDrivername()); conn=DriverManager.getConnection(jdbcInfo.getUrl(),jdbcInfo.getUsername(), jdbcInfo.getPassword()); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } return conn; } public static void close(PreparedStatement pstmt) { if (pstmt != null) { try { pstmt.close(); } catch (SQLException e) { e.printStackTrace(); } } } public static void close(Statement stmt) { if (stmt != null) { try { stmt.close(); } catch (SQLException e) { e.printStackTrace(); } } } public static void close(Connection conn) { if (conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } public static void close(ResultSet rs) { if (rs != null) { try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } } public static void commit(Connection conn) { if (conn != null) { try { conn.commit(); } catch (SQLException e) { e.printStackTrace(); } } } public static void rollback(Connection conn) { if (conn != null) { try { conn.rollback(); } catch (SQLException e) { e.printStackTrace(); } } } public static void setAutoCommit(Connection conn, boolean autoCommit) { if (conn != null) { try { conn.setAutoCommit(autoCommit); } catch (SQLException e) { e.printStackTrace(); } } } public static void main(String[] args) { DB.getConnection(); System.out.println("链接成功!"); } }
相关文章推荐
- MySQL Connector/J 6.x jdbc.properties 配置, mysql-connector-java-6.0.4.jar 异常
- 解决MySQL 在 Java 检索遇到timestamp空值时报异常的问题
- Java与SQL Server, MySql, Oracle, Access的连接方法以及一些异常
- java链接mysql 中文乱码
- Java jdbc链接 mySQL 写的crud
- 解决MySQL 在 Java 检索遇到timestamp空值时报异常的问题
- Mysql学习第一章 Java链接Mysql
- mysql5.5异常: java.sql.SQLException: Packet for query is too large (1055975 > 1048576).
- 插入Mysql异常之Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp
- C# mysql 链接 遇到 异常 Authentication with old password no longer supported, use 4.1 style passwords.
- Java链接Mysql中文乱码问题处理
- C# mysql 链接 遇到 异常 Authentication with old password no longer supported, use 4.1 style passwords.
- java jdbc 链接mysql
- mysql与sqlsever 2008 链接java步骤以及问题解决方案
- Java Web项目异常问题——java.lang.ClassNotFoundException: com.mysql.jdbc:Driver
- Java 链接主机服务器上的 mysql 出错解决方法
- Java链接Mysql中文问号乱码解决办法
- java链接mysql以及sqlserver增删改查
- JAVA写入MySQL数据提示[ERROR 1366 (HY000):错误异常解决方案
- mysql类型与java类型对应异常场景