您的位置:首页 > 编程语言 > Java开发

java jdbc 修改mysql数据库的引擎 InnoDB

2012-07-26 12:28 344 查看
要修改数据库的引擎 首先该数据库要支持修改的引擎
编写获取数据源的类(看自己的数据库连接属性对西面的连接做修改) 

 本列数据库连接用到单例模式

单列的必要条件  静态的属性 私有的构造方法 对外公共的获取连接的方法

 

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");

 }

}

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息