获取数据库所有表与表字段

获取数据库表和表字段信息

SQL语句:

MySQL

获取所有数据库的所有表信息

select * from information_schema.TABLES where TABLE_SCHEMA=(select database())

获取某个表的所有字段信息

select * from information_schema.COLUMNS where TABLE_SCHEMA = (select database()) and TABLE_NAME='表名'

SQL Server

获取所有数据库的所有表信息

select * from information_schema.TABLES

获取某个表的所有字段信息

select * from information_schema.COLUMNS where  TABLE_NAME='仓库表'

其他数据库

SQL : select * from information_schema.tables

ORACLE: select table_name from user_tables

ACCESS: select name from MSysObjects where type=1 and flags=0

mybatis集成(MySQL数据库)

1.导入依赖

<!--thymeleaf-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<!--web-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--mybatis-->
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.1.3</version>
</dependency>
<!--sql server-->
<dependency>
    <groupId>com.microsoft.sqlserver</groupId>
    <artifactId>mssql-jdbc</artifactId>
    <scope>compile</scope>
</dependency>
<!--mysql-->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <scope>compile</scope>
</dependency>

2.连接数据库

#sql server
spring.datasource.url=jdbc:sqlserver://localhost:1433;DatabaseName=数据库
spring.datasource.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver
spring.datasource.username=sa
spring.datasource.password=*******
spring:
  datasource:
    username: root
    password: ******
    url: jdbc:mysql://127.0.0.1:3306/数据库名?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8
    driver-class-name: com.mysql.cj.jdbc.Driver #complie

3.编写mapper接口

@Mapper
public interface TableDao {
	/**
	* 获取所有表信息
	**/
    @Select("select * from information_schema.TABLES where TABLE_SCHEMA=(select database())")
    List<Map> listTable();
	/**
	* 获取表字段信息
	**/
    @Select("select * from information_schema.COLUMNS where TABLE_SCHEMA = (select database()) and TABLE_NAME=#{tableName}")
    List<Map> listTableColumn(String tableName);
    /**
	* 获取表中所有数据
	**/
	@Select("select * from ${tableName}")
	List<Map<String,String>> listTableValue(String tableName);
}

4.开始使用

@Controller
public class IndexController {
    @Autowired
    private TableMapper tableMapper;

    @RequestMapping("/tables")
    @ResponseBody
    public List<String> getList(){
        return tableMapper.getTableList();
    }
    @RequestMapping("/columns")
    @ResponseBody
    public List<String> info(String tableName) {
        List<String> list = tableMapper.listTableColumn(tableName);
        return list.subList(1,list.size()-2);
    }
    @RequestMapping("/values")
    @ResponseBody
    public List<Map<String,String>> values(String tableName){
        return tableMapper.listTableValue(tableName);
    }
}

5.运行结果
查询所有表
查询表字段
查询所有数据

参考

https://blog.csdn.net/asd8510678/article/details/80305716
https://blog.csdn.net/weixin_34414650/article/details/85833144

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值