zoukankan      html  css  js  c++  java
  • 用Java修改MySQL数据库的引擎

    要修改数据库的引擎 首先该数据库要支持修改的引擎
    编写获取数据源的类(看自己的数据库连接属性对西面的连接做修改)
    本列数据库连接用到单例模式
    单列的必要条件 静态的属性 私有的构造方法 对外公共的获取连接的方法

    package com;
    import Java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    public class DBconn {
     private static String driver = "com.MySQL.jdbc.Driver";
     private static String url = "jdbc:mysql://localhost:3306/nlticket2";
     private static String uname = "root";
     private static String pwd = "";
     private static Connection conn = null;   //静态的属性
     private DBconn() {//私有的构造方法
      super();
     }
     public static Connection getConn() {//对外提供公共的调用连接的方法
      if (conn == null) {
       try {
        Class.forName(driver);
        conn = DriverManager.getConnection(url, uname, pwd);
       } catch (ClassNotFoundException e) {
        e.printStackTrace();
       } catch (SQLException e) {
        e.printStackTrace();
       }
      }
      return conn;
     }
    }
    

    编写修改数据库引擎的方法

    package com;
    import java.sql.Connection;
    import java.sql.DatabaseMetaData;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    public class Tool {
    /**
     * 修改數據庫引擎
     *
     * @param conn
     *            數據庫連接
     * @param engines
     *            修改后的數據庫引擎
     */
    public static void setDatabaseEngines(Connection conn, String engines) {
     try {
      DatabaseMetaData dbmd = conn.getMetaData();
      // 获得所有的表名
      ResultSet rs = dbmd.getTables(null, null, null,
        new String[] { "table" });
      while (rs.next()) {
       // 循环结果集 并執行修改數據庫引擎的sql
       String tname = rs.getString("table_name");
       String sql = "ALTER TABLE " + tname + " type=" + engines;
       conn.createStatement().executeUpdate(sql);
       System.out.println(tname + ": 已修改為 " + engines);
      }
      conn.close();
     } catch (SQLException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
      // 如果數據庫不支持 engines 在mysql里也執行不了sql 會報錯
      System.out.println("數據庫不支持 " + engines + " 引擎");
     }
    }
    public static void main(String[] args) {
     // 調用上面的方法 將數據庫修改為 INNODB
     setDatabaseEngines(DBconn.getConn(), "INNODB");
    }
    }
    
  • 相关阅读:
    Linux下使用Nexus搭建Maven私服
    使用Nexus搭建Maven内部服务器
    windows Maven3.0 服务器配置搭建
    Linux中more和less命令用法
    Jmeter使用入门
    【转载】 DeepMind发表Nature子刊新论文:连接多巴胺与元强化学习的新方法
    【转载】 十图详解tensorflow数据读取机制(附代码)
    【转载】 tensorflow中 tf.train.slice_input_producer 和 tf.train.batch 函数
    (待续) https://zhuanlan.zhihu.com/p/27629294
    ( 待续 ) https://zhuanlan.zhihu.com/p/57864886
  • 原文地址:https://www.cnblogs.com/jimloveq/p/10602057.html
Copyright © 2011-2022 走看看