Java 怎么关闭 mybatis的数据库连接? 20
用JDBC连接SQLite:Class.forName("org.sqlite.JDBC");Connectionconn=DriverManager.getConnec...
用JDBC连接SQLite:
Class.forName("org.sqlite.JDBC");
Connection conn = DriverManager
.getConnection("jdbc:sqlite:/d:/sqlite.db");
Statement stat = conn.createStatement();
ResultSet r =stat.executeQuery("select * from student");
while(r.next())
{
System.out.println(r.getString("name"));
}
conn.close(); // 结束数据库的连接
FileUtils.forceDelete(new File("D:/sqlite.db"));
连接关闭,文件成功删除掉
用mybatis连接SQlite:
public static void main(String[] args) throws SQLException
{
try
{
SqlSessionFactory factory = connectSQLite();
SqlSession session = factory.openSession();
List<Student> list = session.selectList("SQLiteTest.queryAllStudent");
for (Student student : list)
{
System.out.println(student.getName());
}
session.getConnection().close();
FileUtils.forceDelete(new File("D:/sqlite.db"));
}
catch (IOException e)
{
e.printStackTrace();
}
}
private static SqlSessionFactory connectSQLite() throws IOException
{
Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml");
Properties proper = createSQLiteProperties();
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader,proper);
reader.close();
return factory;
}
private static Properties createSQLiteProperties()
{
Properties proper = new Properties();
proper.put("driver", "org.sqlite.JDBC");
proper.put("username", "");
proper.put("password", "");
proper.put("url", "jdbc:sqlite:/D:/sqlite.db");
return proper;
}
java.io.IOException: Unable to delete file: D:\sqlite.db
为什么删不掉?mybatis关数据库连接的时候都需要关什么? 展开
Class.forName("org.sqlite.JDBC");
Connection conn = DriverManager
.getConnection("jdbc:sqlite:/d:/sqlite.db");
Statement stat = conn.createStatement();
ResultSet r =stat.executeQuery("select * from student");
while(r.next())
{
System.out.println(r.getString("name"));
}
conn.close(); // 结束数据库的连接
FileUtils.forceDelete(new File("D:/sqlite.db"));
连接关闭,文件成功删除掉
用mybatis连接SQlite:
public static void main(String[] args) throws SQLException
{
try
{
SqlSessionFactory factory = connectSQLite();
SqlSession session = factory.openSession();
List<Student> list = session.selectList("SQLiteTest.queryAllStudent");
for (Student student : list)
{
System.out.println(student.getName());
}
session.getConnection().close();
FileUtils.forceDelete(new File("D:/sqlite.db"));
}
catch (IOException e)
{
e.printStackTrace();
}
}
private static SqlSessionFactory connectSQLite() throws IOException
{
Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml");
Properties proper = createSQLiteProperties();
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader,proper);
reader.close();
return factory;
}
private static Properties createSQLiteProperties()
{
Properties proper = new Properties();
proper.put("driver", "org.sqlite.JDBC");
proper.put("username", "");
proper.put("password", "");
proper.put("url", "jdbc:sqlite:/D:/sqlite.db");
return proper;
}
java.io.IOException: Unable to delete file: D:\sqlite.db
为什么删不掉?mybatis关数据库连接的时候都需要关什么? 展开
4个回答
展开全部
似乎mybatis不用去操心关闭连接,它会自己关闭的,你可以控制连接的最大时间,
/**
* 获取试图连接的最大时间
*
* @see javax.sql.DataSource#getLoginTimeout()
*/
public int getLoginTimeout() throws SQLException {
return getDataSource().getLoginTimeout();
}
/**
* 获取试图连接的最大时间
*
* @see javax.sql.DataSource#getLoginTimeout()
*/
public int getLoginTimeout() throws SQLException {
return getDataSource().getLoginTimeout();
}
更多追问追答
追问
但是我要删除这个文件,不可能等他失效啊,得手动先给他关了
追答
数据库连接的获取和关闭我们可以使用数据库连接池来解决资源浪费的问题。通过连接池就可以反复利用已经建立的连接去访问数据库了。减少连接的开启和关闭的时间。
展开全部
mybatis的数据库连接是自动关闭的,不需要手动关闭。
更多追问追答
追问
那如果有这种删除文件的操作,但是有数据库连接没关掉,我又想删除这个文件,有什么办法?
追答
直接删就是了,没问题的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你是来搞笑的吧=-= 好好学习一下mybatis吧= =
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
还真不清楚。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询