以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数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)