Yishai..
21
基本上在JDBC中,大多数这些属性在API中都不可配置,而是依赖于实现.JDBC处理此问题的方法是允许每个供应商的连接URL不同.
所以你要做的就是注册驱动程序,以便JDBC系统知道如何处理URL:
DriverManager.registerDriver((Driver) Class.forName("com.mysql.jdbc.Driver").newInstance());
然后你形成URL:
String url = "jdbc:mysql://[host][,failoverhost...][:port]/[database][?propertyName1][=propertyValue1][&propertyName2][=propertyValue2]"
最后,用它来建立连接:
Connection c = DriverManager.getConnection(url);
在更复杂的JDBC中,您涉及连接池等,应用程序服务器通常有自己的方式在JNDI中注册驱动程序,并从那里查找DataSource,并在其上调用getConnection.
关于MySQL支持的属性,请参见此处.
编辑:还有一个想法,技术上只是有一行代码Class.forName("com.mysql.jdbc.Driver")应该是足够的,因为类应该有自己的静态初始化程序,它注册一个版本,但有时一个JDBC驱动程序没有,所以如果你不确定,注册第二个没有什么害处,它只是在memeory中创建一个重复的对象.
DataSource实际上适用于提供JNDI服务的应用程序服务器和其他容器.没有JNDI服务,它们没有多大意义,而且教程在这一点上并没有真正写好. (12认同)