元数据

定义:数据库、表、列的定义信息叫元数据。

添加 mysql 和c3p0 驱动包,添加 c3p0 配置xml文件。

public  class  DataBaseMetaDataDemo{
	public  static  void  main(String[]  args){
		Connection  conn =  null;
		PreparedStatement  ps = null;
		ResultSet  rs = null;
		ComboPooledDataSource  source = new  ComboPooledDataSource();
		try{
			conn = source.getConnection();
			//-- 获取当前数据库的元数据
			DatabaseMetaData  metaData = conn.getMetaData();

			//--  获取数据库连接时使用的url
			String  url = metaData.getURL();	//结果:jdbc:mysql:///day12

			//--   获取驱动的名称
			String  driverName = metaData.getDriverName();	//结果:MySQL-AB  JDBC  Driver

			//--  获取数据库的用户名
			String  username = metaData.getUserName();	// 结果:root@localhost

			//--  获取数据库中指定表的主键信息
			rs = metaData.getPrimaryKeys(null,  null,  "account");
			while(rs.next()){
				short cseq = rs.getShort("KEY_SEQ");	//主键列是第几列
				String  cname = rs.getString("COLUMN_NAME");	//主键列名
			}

			//--  获取表名,查找以acc开头的表名
			rs = metaData.getTables(null, null, "acco%",  new String[]{"TABLE"});
			while(rs.next()){
				String  tabName = rs.getString("TABLE_NAME");		//结果:account

			}

		}catch(){

		}finally{

		}
	}
}

==============================================

了解“参数”元数据 PMMetaDataDemo

pulbic  class  PMMetaDataDemo{
	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  id=? and  money = ?");

			//--  获取参数元数据
			ParameterMetaData  metaData = ps.getParameterMetaData();

			//--  获取参数的个数
			int  count = metaData.getParameterCount();	//结果:2

			//--  获取参数的类型,前提:要在c3p0配置文件中 jdbcUrl = jdbc:mysql:///day12?generateSimpleParameterMetadata=true
			String  type1 = metaData.getParameterTypeName(1);	//结果:varchar
			String  type2 = metaData.getParameterTypeName(2);	//结果:varchar

		}catch(){

		}finally{

		}
	}
}


==============================================

了解“结果集”元数据 RSMetaDataDemo

pulbic  class  RSMetaDataDemo{
	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");
			rs = ps.executeQuery();

			//--  获取结果集元数据
			ResultSetMetaData  metaData = rs.getMetaData();

			//--  获取结果集中的列数
			int  num = metaData.getColumnCount();	//结果:3列

			//--  获取结果集中指定列的名称
			String  cn = metaData.getColumnName(2);	//结果:name

			//--  获取结果集中指定列的类型的名称
			String ct = metaData.getColumnTypeName(3);	//结果:double
			

			System.out.println("-------------------------------------------------------");
			for(int i = 1;i<=cc;i++){
				String cn = metaData.getColumnName(i);
				String ct = metaData.getColumnTypeName(i);
				System.out.print(cn+":"+ct+"\t\t");
			}
			System.out.println();
			System.out.println("-------------------------------------------------------");
			while(rs.next()){
				for(int i =1 ;i<=cc;i++){
					Object obj = rs.getObject(i);
					System.out.print(obj+"\t\t\t");
				}
				System.out.println();
			}
			
			System.out.println("-------------------------------------------------------");


		}catch(){

		}finally{

		}
	}
}








  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值