博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JDBC(5)ResSetMetaData&DatabaseMetaData&获取数据库主键的值
阅读量:6251 次
发布时间:2019-06-22

本文共 3782 字,大约阅读时间需要 12 分钟。

ResSetMetaData
可用于获取关于 ResultSet 对象中列的类型和属性信息的对象:getColumnName(int column):获取指定列的名称getColumnCount():返回当前 ResultSet 对象中的列数。 getColumnTypeName(int column):检索指定列的数据库特定的类型名称。 getColumnDisplaySize(int column):指示指定列的最大标准宽度,以字符为单位。 isNullable(int column):指示指定列中的值是否可以为 null。 isAutoIncrement(int column):指示是否自动为指定列进行编号,这样这些列仍然是只读
@Test    public void testResSetMetaData(){
Connection conn = null; PreparedStatement preparedstatement = null; ResultSet rs = null; try { conn = getConnection(); String sql = "select * from student"; preparedstatement = (PreparedStatement) conn.prepareStatement(sql); rs = preparedstatement.executeQuery(); //1.得到ResSetMetaData()对象 ResultSetMetaData rsmd = (ResultSetMetaData) rs.getMetaData(); //2.得到列的个数 int c = rsmd.getColumnCount(); System.out.println(c); //3.得到列名 for(int i = 0; i < c;i++){ String sName = rsmd.getColumnName(i + 1); //得到列的别名 String cLabel = rsmd.getColumnLabel(i + 1); System.out.println(sName + "==" + cLabel); } } catch (Exception e) {
e.printStackTrace(); } }

 

 
DatabaseMetaData
DatabaseMetaData 类中提供了许多方法用于获得数据源的各种信息,通过这些方法可以非常详细的了解数据库的信息:可以由Connection得到      getURL():返回一个String类对象,代表数据库的URL。getUserName():返回连接当前数据库管理系统的用户名。isReadOnly():返回一个boolean值,指示数据库是否只允许读操作。getDatabaseProductName():返回数据库的产品名称。getDatabaseProductVersion():返回数据库的版本号。getDriverName():返回驱动驱动程序的名称。getDriverVersion():返回驱动程序的版本号
@Test    public void testDatebaseMetaData(){                Connection conn = null;        ResultSet rs = null;        try {            conn = getConnection();            DatabaseMetaData data = (DatabaseMetaData) conn.getMetaData();            //得到数据库的版本号            int version = data.getDatabaseMajorVersion();            System.out.println(version);                        //得到连接数据库的用户名            String user = data.getUserName();            System.out.println(user);                        //得到MYSQL中有那些数据库            rs = data.getCatalogs();            while(rs.next()){                System.out.println(rs.getString(1));            }        } catch (Exception e) {            e.printStackTrace();        }finally{           Close(rs,null , conn);        }            }

 

 
prepareStatement(sql, autoGeneratedKeys)
@Test    public void testPreparedStatementjdbc(){                //返回主键的值        Connection connection = null;        PreparedStatement preparedStatement = null;                try {            connection = JdbcTools.getConnection();            String sql = "insert into student(sname,sclass) values(?,?)";                                    //preparedStatement = (PreparedStatement) connection.prepareStatement(sql);                        //prepareStatement(sql, autoGeneratedKeys);            //使用重载的prepareStatement(sql, flag);生成 preparedstatement对象            preparedStatement = (PreparedStatement) connection.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);                        preparedStatement.setString(1, "MrChengs");            preparedStatement.setInt(2, 123456);            preparedStatement.executeUpdate();                                    //通过getGeneratedKeys();方法返回结果集            //包含了新生成的主键的ResultSet对象            ResultSet rs = preparedStatement.getGeneratedKeys();            if(rs.next()){                System.out.println(rs.getInt(1));            }               } catch (Exception e) {            e.printStackTrace();        }finally {           Close(null, preparedStatement, connection);    }    }

 

 

转载于:https://www.cnblogs.com/Mrchengs/p/9780854.html

你可能感兴趣的文章
windows查看端口占用
查看>>
Yii用ajax实现无刷新检索更新CListView数据
查看>>
App 卸载记录
查看>>
南京大学周志华教授当选欧洲科学院外籍院士
查看>>
计算机网络与Internet应用
查看>>
Mars说光场(3)— 光场采集
查看>>
Django 文件下载功能
查看>>
走红日本 阿里云如何能够赢得海外荣耀
查看>>
qt 学习之路2
查看>>
线上应用故障排查之二:高内存占用
查看>>
第四次作业
查看>>
异常处理汇总 ~ 修正果带着你的Code飞奔吧!
查看>>
BFS --- 素数环
查看>>
PCIE_DMA:xapp1052学习笔记
查看>>
python ----字符串基础练习题30道
查看>>
uva-10879-因数分解
查看>>
python 调用aiohttp
查看>>
Spring Boot中使用MyBatis注解配置详解
查看>>
linux下文件的一些文件颜色的含义
查看>>
跨域iframe高度自适应(兼容IE/FF/OP/Chrome)
查看>>