package com.github.shoothzj.demo.db.jdbc.mariadb;
import com.github.shoothzj.demo.base.mariadb.module.FieldDescribe;
import com.github.shoothzj.demo.base.util.LogUtil;
import lombok.extern.slf4j.Slf4j;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.Properties;
/**
* @author hezhangjian
*/
@Slf4j
public class MariadbDescribeTable {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
LogUtil.configureLog();
Class.forName("org.mariadb.jdbc.Driver");
// Now try to connect
Properties p = new Properties();
p.put("user", "hzj");
p.put("password", "Mysql@123");
try (Connection c = DriverManager.getConnection("jdbc:mariadb://localhost:3306/ttbb", p)) {
{
PreparedStatement preparedStatement = c.prepareStatement("CREATE TABLE XX(\n" +
" id VARCHAR(50) PRIMARY KEY,\n" +
" male BOOLEAN,\n" +
" weight DOUBLE,\n" +
" age INT,\n" +
" age2 INTEGER\n" +
")");
preparedStatement.execute();
}
{
PreparedStatement statement = c.prepareStatement("SELECT * FROM XX LIMIT 1");
ResultSetMetaData metaData = statement.getMetaData();
int size = metaData.getColumnCount();
for (int i = 1; i <= size; i++) {
FieldDescribe fieldDescribe = new FieldDescribe();
fieldDescribe.setColumnType(metaData.getColumnType(i));
fieldDescribe.setColumnTypeName(metaData.getColumnTypeName(i));
fieldDescribe.setColumnDisplaySize(metaData.getColumnDisplaySize(i));
fieldDescribe.setColumnLabel(metaData.getColumnLabel(i));
log.info("[{}]", fieldDescribe);
}
}
{
PreparedStatement preparedStatement = c.prepareStatement("DROP TABLE XX");
preparedStatement.execute();
}
}
}
}
输出结果
13:22:38.263 [main] INFO com.github.shoothzj.demo.db.jdbc.mariadb.MariadbDescribeTable - [FieldDescribe(columnType=12, columnTypeName=VARCHAR, columnDisplaySize=50, columnLabel=id)]
13:22:38.266 [main] INFO com.github.shoothzj.demo.db.jdbc.mariadb.MariadbDescribeTable - [FieldDescribe(columnType=-7, columnTypeName=TINYINT, columnDisplaySize=1, columnLabel=male)]
13:22:38.266 [main] INFO com.github.shoothzj.demo.db.jdbc.mariadb.MariadbDescribeTable - [FieldDescribe(columnType=8, columnTypeName=DOUBLE, columnDisplaySize=22, columnLabel=weight)]
13:22:38.266 [main] INFO com.github.shoothzj.demo.db.jdbc.mariadb.MariadbDescribeTable - [FieldDescribe(columnType=4, columnTypeName=INTEGER, columnDisplaySize=11, columnLabel=age)]
13:22:38.266 [main] INFO com.github.shoothzj.demo.db.jdbc.mariadb.MariadbDescribeTable - [FieldDescribe(columnType=4, columnTypeName=INTEGER, columnDisplaySize=11, columnLabel=age2)]
备注:
你可以在SELECT语句中指定你需要的字段,SELECT *即为查询全部的字段
网友评论