MysqlDataSource里的Connection实现类实现了isValid(int timeout)方法

  在项目中,需要连接mysql数据库的时候,我们最好选择使用数据库连接池,即需要选择DataSource。

  而在使用c3p0的ComboPooledDataSource时,发现它的Connection实现类NewProxyConnection没有实现isValid(int timeout)方法;在查阅资料并进行相关测试后,发现mysql驱动包里的MysqlDataSource中的Connection实现类(具体是哪个还请大家告知)实现了isValid(int timeout)方法。

转载于:https://www.cnblogs.com/VampireVoyager/p/4270102.html

非常抱歉,我的回答有误。在 Android 中,UsbDeviceConnection 的 `getFileDescriptor()` 方法返回的是 `FileDescriptor` 型的对象,而非 `int` 型的对象。同时,`FileDescriptor` 确实没有 `valid()` 方法。 正确的做法是,在获取 `FileDescriptor` 对象后,可以使用 `FileOutputStream` 的 `getFD()` 方法获取一个 `FileDescriptor` 对象。然后,判断这两个对象是否相等即可判断连接是否有效。具体的步骤如下: 1. 获取 USBManager 对象:通过 getSystemService() 方法获取系统服务 USB_SERVICE,然后强制转换为 USBManager 型。 2. 获取 USB 设备列表:使用 getDeviceList() 方法获取当前连接的 USB 设备列表。 3. 连接 USB 设备:对于需要使用的 USB 设备,可以使用 USBManager 中的 `openDevice()` 方法来获取与设备的连接。该方法接收一个 `UsbDevice` 对象作为参数,返回一个 `UsbDeviceConnection` 对象。 4. 判断 USB 设备状态:对于每个 USB 设备,可以使用 `UsbDeviceConnection` 对象中的 `getFileDescriptor()` 方法获取与设备的连接,然后使用 `FileOutputStream` 中的 `getFD()` 方法获取一个 `FileDescriptor` 对象。然后,判断这两个对象是否相等即可判断连接是否有效。如果连接有效,则设备处于已连接状态;否则设备处于已断开状态。 下面是示例代码: ```java // 获取 USBManager 对象 USBManager usbManager = (USBManager) getSystemService(Context.USB_SERVICE); // 获取 USB 设备列表 HashMap<String, UsbDevice> deviceList = usbManager.getDeviceList(); // 遍历 USB 设备列表 for (UsbDevice device : deviceList.values()) { // 连接 USB 设备 UsbDeviceConnection connection = usbManager.openDevice(device); // 判断设备状态 if (connection != null && connection.getFileDescriptor() != null) { // 获取连接的 FileDescriptor 对象 FileDescriptor fd = connection.getFileDescriptor(); // 获取 FileDescriptor 对象的副本 FileDescriptor fdCopy = new FileOutputStream(fd).getFD(); // 判断连接是否有效 if (fd == fdCopy) { // 设备已连接 } else { // 设备已断开 } } else { // 设备已断开 } // 断开与 USB 设备的连接 connection.close(); } ``` 需要注意的是,连接 USB 设备需要在具有 USB 设备权限的情况下进行,否则将无法连接到设备。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值