如何读取出mysql中的表结构

如何读取出mysql中的表结构,第1张

Online DDL 工具:pt-osc

对于 MySQL Online DDL 目前主流的有三种工具:

原生 Online DDL;

pt-osc(online-schema-change),

gh-ost

本文主要讲解 pt-online-schema-change 的使用以及三种工具的简单对比。

一、原理及限制

1.1 原理

1. 创建一个与原表结构相同的空表,表名是 _new 后缀;

2. 修改步骤 1 创建的空表的表结构;

3. 在原表上加三个触发器:delete/update/insert,用于 copy 数据过程中,将原表中要执行的语句在新表中执行;

4. 将原表数据以数据块(chunk)的形式 copy 到新表;

5. rename 原表为 old 表,并把新表 rename 为原表名,然后删除旧表;

6. 删除触发器。

读取数据库,首先要将数据库的驱动包导入:如果是mysql数据库,需要导入mysql-connector-java-5.1.27.jar,如果是oracle就需要导入oracle.jar包;

然后就是建立数据库连接,使用Connection 新建连接,然后执行你的sql语句查询出需要的数据,下面是两个方法: public PageModel findAllUser(int pageNo,int pageSize){String sql = "select * from user where user_name <>'root' order by user_name" +"limit" + (pageNo - 1) * pageSize + "," + pageSizePageModel pageModel =nullConnection conn =nullStatement stmt =nullResultSet rs = nulltry{conn = DB.getConn()stmt = conn.createStatement()rs = stmt.executeQuery(sql)List user_List = new ArrayList()while(rs.next()){User user = new User()user.setUser_name(rs.getString("user_name"))user.setUser_password(rs.getString("user_password"))user.setUser_tel(rs.getString("user_tel"))user.setUser_email(rs.getString("user_email"))user.setUser_createDate(rs.getTimestamp("user_createdate"))user_List.add(user)}//取得所有记录int totalRecords = getTotalRecords(conn)pageModel = new PageModel()pageModel.setPageSize(pageSize)pageModel.setList(user_List)pageModel.setTotalRecord(totalRecords)}catch(SQLException e){e.printStackTrace()}finally{DB.close(rs)DB.close(stmt)DB.close(conn)}return pageModel} /** * 取得所有记录 * @param conn * @return 所有记录totalRecords */public int getTotalRecords(Connection conn){String sql = "select count(*) from user where user_name <>'root' "int totalRecords = 0Statement stmt = nullResultSet rs = nulltry{conn = DB.getConn()stmt = conn.createStatement()rs = stmt.executeQuery(sql)if(rs.next()){totalRecords = rs.getInt(1)}}catch(SQLException e){e.printStackTrace()}finally{DB.close(rs)DB.close(stmt)DB.close(conn)}return totalRecords}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8643466.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-19
下一篇 2023-04-19

发表评论

登录后才能评论

评论列表(0条)

保存