数据库的批量操作
程序员文章站
2022-06-22 12:02:20
这里的数据库用的Firebird数据库,当然可以用Mysql,Oracle等主流数据库,方法也只是简单列出了删除,增删改查类似,如法炮制。 ......
package com.mescs.baseinfo.utils; import java.sql.connection; import java.sql.databasemetadata; import java.sql.drivermanager; import java.sql.preparedstatement; import java.sql.resultset; import java.sql.sqlexception; import java.sql.statement; import java.util.arraylist; import java.util.list; import org.slf4j.logger; import org.slf4j.loggerfactory; /** * * 类名:databaseutil <br /> * * 功能:数据库操作 * * @author 田宇鹏 <br /> * 创建时间:sep 10, 2018 10:55:02 am <br /> * @version sep 10, 2018 */ public class databaseutil { private final static logger logger = loggerfactory.getlogger(databaseutil.class); private static final string driver = "org.firebirdsql.jdbc.fbdriver"; private static final string url = "jdbc:firebirdsql:embedded:mescs.fdb?lc_ctype=utf8"; private static final string username = "root"; private static final string password = "root"; private static final string sql = "delete from ";// 数据库数据库表内容清空 static { try { class.forname(driver); } catch (classnotfoundexception e) { logger.error("数据库驱动加载失败===>>>", e); } } /** * 获取数据库连接 * * @return */ public static connection getconnection() { connection conn = null; try { conn = drivermanager.getconnection(url, username, password); } catch (sqlexception e) { logger.error("数据库连接失败===>>>", e); } return conn; } /** * 关闭数据库连接 * @param conn */ public static void closeconnection(connection conn) { if(conn != null) { try { conn.close(); } catch (sqlexception e) { logger.error("数据库关闭失败===>>>", e); } } } /** * 获取数据库下的所有表名 */ public static list<string> gettablenames() { list<string> tablenames = new arraylist<string>(); connection conn = getconnection(); resultset rs = null; try { //获取数据库的元数据 databasemetadata db = conn.getmetadata(); //从元数据中获取到所有的表名 rs = db.gettables(null, null, null, new string[] { "table" }); while(rs.next()) { tablenames.add(rs.getstring(3)); } } catch (sqlexception e) { logger.error("获取数据库表名失败===>>>", e); } finally { try { rs.close(); closeconnection(conn); } catch (sqlexception e) { logger.error("关闭数据库失败===>>>", e); } } return tablenames; } /* * 清空数据库表 */ public static void emptydatabase() throws sqlexception { list<string> tablenames = gettablenames(); connection conn = getconnection(); preparedstatement pstemt = null; for(string table:tablenames){ if(!table.equals("sysparam") && !table.equals("t_clear_data")){ string tablesql = sql + table; try { pstemt = conn.preparestatement(tablesql); statement stmt=conn.createstatement(); stmt.executeupdate(tablesql); } catch (sqlexception e) { e.printstacktrace(); } } } conn.close(); } }
这里的数据库用的firebird数据库,当然可以用mysql,oracle等主流数据库,方法也只是简单列出了删除,增删改查类似,如法炮制。
上一篇: c语言:&&和||的关系