mirror of
https://gitee.com/dromara/hutool.git
synced 2025-05-08 06:37:58 +08:00
fix code and add test
This commit is contained in:
parent
11d7d8c092
commit
be99fda3d6
@ -153,6 +153,7 @@ public abstract class AbstractDSFactory extends DSFactory {
|
|||||||
DataSourceWrapper ds = dsMap.get(group);
|
DataSourceWrapper ds = dsMap.get(group);
|
||||||
if (ds != null) {
|
if (ds != null) {
|
||||||
ds.close();
|
ds.close();
|
||||||
|
//noinspection resource
|
||||||
dsMap.remove(group);
|
dsMap.remove(group);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package cn.hutool.db.ds;
|
package cn.hutool.db.ds;
|
||||||
|
|
||||||
|
import cn.hutool.core.clone.CloneRuntimeException;
|
||||||
import cn.hutool.core.io.IoUtil;
|
import cn.hutool.core.io.IoUtil;
|
||||||
|
|
||||||
import javax.sql.DataSource;
|
import javax.sql.DataSource;
|
||||||
@ -30,7 +31,7 @@ public class DataSourceWrapper implements DataSource, Closeable, Cloneable {
|
|||||||
*
|
*
|
||||||
* @param ds 原始的DataSource
|
* @param ds 原始的DataSource
|
||||||
* @param driver 数据库驱动类名
|
* @param driver 数据库驱动类名
|
||||||
* @return {@link DataSourceWrapper}
|
* @return DataSourceWrapper
|
||||||
*/
|
*/
|
||||||
public static DataSourceWrapper wrap(DataSource ds, String driver) {
|
public static DataSourceWrapper wrap(DataSource ds, String driver) {
|
||||||
return new DataSourceWrapper(ds, driver);
|
return new DataSourceWrapper(ds, driver);
|
||||||
@ -117,4 +118,12 @@ public class DataSourceWrapper implements DataSource, Closeable, Cloneable {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public DataSourceWrapper clone() {
|
||||||
|
try {
|
||||||
|
return (DataSourceWrapper) super.clone();
|
||||||
|
} catch (CloneNotSupportedException e) {
|
||||||
|
throw new CloneRuntimeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
@ -0,0 +1,18 @@
|
|||||||
|
package cn.hutool.db.ds;
|
||||||
|
|
||||||
|
import cn.hutool.db.ds.simple.SimpleDataSource;
|
||||||
|
import org.junit.Assert;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
public class DataSourceWrapperTest {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void cloneTest(){
|
||||||
|
final SimpleDataSource simpleDataSource = new SimpleDataSource("jdbc:sqlite:test.db", "", "");
|
||||||
|
final DataSourceWrapper wrapper = new DataSourceWrapper(simpleDataSource, "test.driver");
|
||||||
|
|
||||||
|
final DataSourceWrapper clone = wrapper.clone();
|
||||||
|
Assert.assertEquals("test.driver", clone.getDriver());
|
||||||
|
Assert.assertEquals(simpleDataSource, clone.getRaw());
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user