黑马day12 数据库之元数据
来源:互联网 发布:映射端口怎么设置 编辑:程序博客网 时间:2024/05/16 23:37
声明:下面的案例在数据库为:
create database day12;
use day12;
create table account(
id int primary key auto_increment,
name varchar(30),
money double
);
使用的c3p0数据库
配置文件:c3p0-config.xml文件
<?xml version="1.0" encoding="UTF-8"?><c3p0-config> <default-config> <property name="driverClass">com.mysql.jdbc.Driver</property> <property name="jdbcUrl">jdbc:mysql://localhost:3306/day12?generateSimpleParameterMetadata=true</property> <property name="user">root</property> <property name="password">169500</property> </default-config></c3p0-config>
1.介绍Connection的getMetaData()方法
案例:
package com.itheima.matadata;import java.sql.Connection;import java.sql.DatabaseMetaData;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import org.apache.commons.dbutils.DbUtils;import com.mchange.v2.c3p0.ComboPooledDataSource;public class ConnectionMataData {public static void main(String[] args) {Connection con=null;PreparedStatement ps=null;ResultSet rs=null;ComboPooledDataSource source=new ComboPooledDataSource();try {con=source.getConnection();DatabaseMetaData metaDate = con.getMetaData();//换取元数据,主要是获取数据库配置信息String driverName = metaDate.getDriverName();//驱动名String url = metaDate.getURL();//url地址String userName = metaDate.getUserName();//用户名System.out.println(driverName);System.out.println(url);System.out.println(userName);} catch (SQLException e) {e.printStackTrace();}finally{DbUtils.closeQuietly(con, ps, rs);}}}运行结果:
MySQL-AB JDBC Driver
jdbc:mysql://localhost:3306/day12?generateSimpleParameterMetadata=true
root@localhost
2.介绍ParepareStatement的getParameterMetaData()方法
案例:
package com.itheima.matadata;import java.sql.Connection;import java.sql.ParameterMetaData;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import org.apache.commons.dbutils.DbUtils;import com.mchange.v2.c3p0.ComboPooledDataSource;public class PrepareStatementMedaData {public static void main(String[] args) {Connection conn = null;PreparedStatement ps = null;ResultSet rs = null;ComboPooledDataSource source = new ComboPooledDataSource();try{conn = source.getConnection();ps = conn.prepareStatement("select * from account where name=? and money=?");//--获取参数元数据ParameterMetaData metaData = ps.getParameterMetaData();//----参数的个数int count = metaData.getParameterCount();System.out.println(count);//----获取参数的类型String type = metaData.getParameterTypeName(1);System.out.println(type);String type2 = metaData.getParameterTypeName(2);System.out.println(type2);}catch (Exception e) {e.printStackTrace();}finally{DbUtils.closeQuietly(conn, ps, rs);}}}其中最重要的是获取参数的个数,,,主要是给框架师使用的,在我的文章的后面自己定义自己的QueryRunner中的update()方法中使用到了。
运行结果:
2 :说明有两个问号
VARCHAR :目前不管什么类型都是varchar,mysql没有这个功能.?generateSimpleParameterMetadata=true见c3p0-config.xml的配置文件中的配置
VARCHAR
3.介绍ResultSet中的getMetaData
案例:
package com.itheima.matadata;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.ResultSetMetaData;import java.sql.SQLException;import org.apache.commons.dbutils.DbUtils;import com.mchange.v2.c3p0.ComboPooledDataSource;public class ResultMetaData {public static void main(String[] args) {Connection con=null;PreparedStatement ps=null;ResultSet rs=null;ComboPooledDataSource source=new ComboPooledDataSource();try {con=source.getConnection();ps=con.prepareStatement("select * from account ");rs=ps.executeQuery();ResultSetMetaData metaData = rs.getMetaData();int count = metaData.getColumnCount();System.out.println(count);//列的名字比如id name moneyString columnName = metaData.getColumnName(1);System.out.println(columnName);//获取列的名字的类型如id的类型是int name 的类型是varchar money的类型是doubleString columnTypeName = metaData.getColumnTypeName(2);System.out.println(columnTypeName);} catch (SQLException e) {e.printStackTrace();}finally{DbUtils.closeQuietly(con, ps, rs);}}}int count = metaData.getColumnCount(); 这个表一共几列
String columnName = metaData.getColumnName(1); 获取第几列的名字如id name money
String columnTypeName = metaData.getColumnTypeName(2);获取第几列的名字的类型 id的类型是 int 等
运行结果:
3
id
VARCHAR
1 0
- 黑马day12 数据库之元数据
- 黑马程序员---java基础之day12-13
- 数据库元数据(DatabaseMetaDate)
- 获取数据库元数据
- 获取数据库元数据
- 数据库元数据
- 数据库元数据对象
- 黑马程序员_元数据
- SQL总结之数据库元数据(MSSQL)
- 黑马程序员_java基础day12
- 黑马程序员-Java多线程-day12
- 黑马程序员--Java基础Day12
- 黑马day12 DbUtils的介绍
- hibernate之元数据
- JDBC之元数据
- DataBase MetaData----数据库元数据
- Java数据库编程---元数据
- java--获取数据库元数据
- 高并发下的系统设计(偏数据库设计)
- 欢迎使用CSDN-markdown编辑器
- 对于空字符串split()操作获取的数组的长度为1解释
- 仿QQ控件右上角按钮
- JSch:纯JAVA实现SFTP文件上传和下载
- 黑马day12 数据库之元数据
- 第一次写博客,来记录一些工作中遇到的技术问题---关于android的Notification学习的记录
- Android:Layout_weight的理解
- 设计模式——工厂方法模式
- 完数
- 一些常用的IOS开发网站
- 获取当前时间以及年月日
- C 语言----宿舍管理系统 课程设计
- 文章标题