JDBC如何获得数据库的约束信息

JDBC如何获得数据库的约束信息,第1张

以MySQL5为例,看看实现过程:

首先为了描述表和列的关系,必须做个简单建模:

表对象、列对象,之间是一对多关系。

public class TableInfoBean {

private String tableName;

private String tableComment;

private List<ColumnBean> columnList=new ArrayList<ColumnBean>();

public class ColumnBean {

private String columnName;

private String columnComment;

private String SqlType;

这个关系很简单,就这么搞定了,用来保存一个表信息。

下面就是如何从数据库读取表信息了。

在这里依赖一个类DatabaseMetaData,这个对象可以从数据库连接来获取。有了它万事大吉了,想知道什么问它即可:

DatabaseMetaData databaseMetaData = conngetMetaData();

//获取所有表

ResultSet tableSet = databaseMetaDatagetTables(null, "%", "%", new String[]{"TABLE"});

//获取tableName表列信息

ResultSet columnSet = databaseMetaDatagetColumns(null, "%", tableName, "%");

上面代码会得到两个结果集,对照DatabaseMetaData 的文档,我们可以通过结果集的列名来获取想要的信息,例如

String tableName = tableSetgetString("TABLE_NAME");

String tableComment = tableSetgetString("REMARKS");

String columnName = columnSetgetString("COLUMN_NAME");

String columnComment = columnSetgetString("REMARKS");

String sqlType = columnSetgetString("DATA_TYPE");

含义很清楚我就不做解释了。

逐个遍历表,然后得到一个TableInfoBean的集合,这个集合就是数据库中所有表的信息了

用到的是mysql的jar包,需要自己导入,这里我是用的是5148可以选择大于这个版本的

import javasql;

public class EditInfo {

public static void main(String[] args) throws Exception {

//加载驱动

ClassforName("commysqljdbcDriver");

//获取连接

Connection conn = DriverManagergetConnection("jdbc:mysql://127001:3306/jdbctestuser=root&password=123456&useUnicode=true&characterEncoding=UTF-8");

//创建preparestatement

PreparedStatement pstm=connprepareStatement("insert into students values(,,,)");

pstmsetInt(1,1);

pstmsetString(2,"莉莉");

pstmsetString(3,"生产");

pstmsetString(4,"1班");

pstmexecuteUpdate();

pstmsetInt(1,2);

pstmsetString(2,"毛毛");

pstmsetString(3,"制造");

pstmsetString(4,"2班");

pstmexecuteUpdate();

pstmsetInt(1,3);

pstmsetString(2,"妮妮");

pstmsetString(3,"资讯");

pstmsetString(4,"3班");

pstmexecuteUpdate();

pstmsetInt(1,4);

pstmsetString(2,"菲菲");

pstmsetString(3,"售后");

pstmsetString(4,"4班");

pstmexecuteUpdate();

pstmsetInt(1,5);

pstmsetString(2,"娜娜");

pstmsetString(3,"海外");

pstmsetString(4,"5班");

pstmexecuteUpdate();

PreparedStatement query=connprepareStatement("select from students");

ResultSet rs = queryexecuteQuery();

while (rsnext()) {

String result = rsgetInt(1) + " " + rsgetString(2) + " " + rsgetString(3) + " " + rsgetString(4);

Systemoutprintln(result);

}

pstmclose();

queryclose();

connclose();

}

}

显示结果

1导入mysql数据库的驱动jar包

如我的导的是mysql-connector-java-5140jar

2注册驱动

注册驱动代码为:ClassforName("commysqljdbcDriver")

3获取连接

Connection con = DriverManagergetConnection(url,username,password)

其中url为 jdbc:mysql://localhost:3306/xunuseSSL=false,后面那个xun为数据库的库名,如果不使用加密的话,useSSL=false这个其实也可以省略,省略后为jdbc:mysql://localhost:3306/xun,不过最好还是别省略哈。

4获取PrepareStatement并发送sql查询语句

String sql = "select from user where username = "(这个查询语句为随便举的例子哈)

PreparedStatement pst = conpreparedStatement(sql);

pstsetString(1,"zengjiaxun");

ResultSet rs = pstexecuteQuery();

注意,执行查询使用的是executeQuery()方法,此方法返回的是ResultSet,ResultSet为结果集,封装了查询结果。插入,删除,修改用的是executeUpdate()方法。

pstclearParameters();

执行sql后记得关闭相应的流。。

jdbc连接数据库步骤如下:

*** 作设备:戴尔笔记本电脑

*** 作系统:win10

*** 作程序:mysql jdbc

1、点击左下角的开始菜单,如下图所示

2、输入cmd,打开命令行,如下图所示:

3、输入Net start Mysql,启动mysql服务,如下图所示:

4、先输入create database,如下图所示:

5、然后输入你想要的数据库名字,如下图所示:

1、首先我们通过数据库可视化工具navicate for mysql,新建一个数据库,名字叫test新建一张表。

2、添加id,name字段,点击保存,设置表名称为user。

3、最终数据库及表创建成功。

4、然后我们添加一条数据。

5、下载java mysql connector驱动,通过maven添加依赖即可。

要使用mysql的jar包,数据库名为test,表名shop,列名shopName

package comyunix;

import javasqlConnection;

import javasqlDriverManager;

import javasqlResultSet;

import javasqlSQLException;

import javasqlStatement;

public class Test {

public static void main(String []args){

Connection con = getAccessCon();

try {

Statement st = concreateStatement();

ResultSet rs = stexecuteQuery("select from shop");

while(rsnext()){

Systemoutprintln(rsgetString("shopName"));

}

rsclose();

stclose();

conclose();

} catch (SQLException e) {

eprintStackTrace();

}

}

public static Connection getAccessCon(){

Connection con = null;

try{

ClassforName("commysqljdbcDriver")newInstance();

con=DriverManagergetConnection("jdbc:mysql://localhost:3306/testuser=root&password=root");

}catch(Exception e){

eprintStackTrace();

}

return con;

}

}

以上就是关于JDBC如何获得数据库的约束信息全部的内容,包括:JDBC如何获得数据库的约束信息、请编写一个用于添加和读取数据库中students表信息的JDBC程序、如何实现JDBC连接mysql数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/sjk/9334531.html

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

发表评论

登录后才能评论

评论列表(0条)

保存