元数据
JNDI技术简介
1、 JNDI(Java Naming and Directory Interface),Java命名和目录接口,它对应于J2SE中的javax.naming包
2、 这套API的主要作用在于:它可以把Java对象放在一个容器中(JNDI容器),并为容器中的java对象取一个名称,以后程序想获得Java对象,只需通过名称检索即可。
3、 其核心API为Context,它代表JNDI容器,其lookup方法为检索容器中对应名称的对象
元数据——DataBaseMetaData
1、 元数据:数据库、表、列的定义信息。
2、 ConnectiongetDatabaseMetaData()
3、 DataBaseMetaData对象
1) getURL():返回一个String类对象,代表数据库的Url.
2) getUserName();返回连接当前数据库管理系统的用户名。
3) getDatabaseProductName();返回数据库的产品名称。
4) getDatabaseProductVersion();返回数据库的版本号。
5) getDriverName();返回驱动程序的名称。
6) getDriverVersion();返回驱动程序的版本号。
7) isReadOnly();返回一个boolean值,指示数据库是否允许读操作。
元数据- ParameterMetaData
1、 PreparedStatement . getParameterMetaData()
获得代表PreparedStatement元数据的ParameterMetaData对象。
Select * fromuser where name=? And password=?
2、 ParameterMetaData对象
getParameterCount()
获得指定参数的个数
getParameterType(int param)
获得指定参数的sql类型
元数据- ResultSetMetaData
1、 ResultSet. getMetaData()
获得代表ResultSet对象元数据的ResultSetMetaData对象。
2、 ResultSetMetaData对象
getColumnCount()
返回resultset对象的列数
getColumnName(int column)
获得指定列的名称
getColumnTypeName(int column)
获得指定列的类型
使用元数据简化JDBC代码
业务背景:系统中所有实体对象都涉及到基本的CRUD操作:
所有实体的CUD操作代码基本相同,仅仅发送给数据库的SQL语句不同而已,因此可以把CUD操作的所有相同代码抽取到工具类的一个update方法中,并定义参数接收变化的SQL语句。
实体的R操作,除SQL语句不同之外,根据操作的实体不同,对ResultSet的映射也各不相同,因此可义一个query方法,除以参数形式接收变化的SQL语句外,可以使用策略模式由qurey方法的调用者决定如何把ResultSet中的数据映射到实体对象中。