Thanks Lukas. I look forward to your next release. You have created a very useful tool.
Cheers, Jon On Tuesday, November 13, 2012 12:25:32 AM UTC-8, Lukas Eder wrote: > > Hi Jon, > > Thanks for the clarification. jOOQ iteself doesn't provide any > additional database meta-information other than what is known at > code-generation time. jOOQ-meta could be a slightly better match for > your needs, although it is designed only to serve jOOQ-codegen, so it > probably wouldn't be a very reliable database meta-information source > for you... > > Nevertheless, jOOQ should probably wrap JDBC's DatabaseMetaData in a > "jOOQ way", i.e. a MetaData type with signatures as these: > > - `List<org.jooq.Schema> schemas()` > - `List<org.jooq.Schema> schemas(... search criteria)` > - `List<org.jooq.Table> tables()` > - `List<org.jooq.Table> tables(... search criteria)` > > This might even prove to be useful for jOOQ internally, when dealing > with plain SQL. > > I have registered feature request #1968 for this > https://github.com/jOOQ/jOOQ/issues/1968 > > Cheers > Lukas > > 2012/11/13 Jon Inloes <[email protected] <javascript:>>: > > Thanks a lot for the response Lukas. > > > > I've looked over that documentation already. > > > > I don't think I explained what I'm trying to do clearly. I'm trying to > use > > JOOQ to dynamically write to a databases. That is, I don't know what > > database I'm using beforehand nor do I know the structure of the tables. > > Which is why I asked if was possible to use JOOQ to pull back database > > metadata easier than querying it through JDBC. I know schemaCrawler does > > this by supplying it with a connection. Pulling this data back will help > me > > determine which type of converter to use. For example, if I have a > jodatime > > object while writing to an oracle database, I want to see if I'm writing > to > > a standard sql timestamp or an oracle specific TIMESTAMPTZ column. Code > > generation is not an option because the database being used is > determined at > > run-time. > > > > Thanks a lot again and you've created a great tool, > > Jon > > > > > > On Saturday, November 10, 2012 1:29:00 AM UTC-8, Lukas Eder wrote: > >> > >> Hello Jon > >> > >> > What I'm confused on is how JOOQ handles writing to vendor specific > data > >> > types like oracle's TIMESTAMPTZ. > >> > >> jOOQ generally uses those data types that are available through JDBC. > >> In this case, the best matching data type is probably > >> java.sql.Timestamp. > >> > >> > Also, if JOOQ does not handle a case where a column is a custom data > >> > type > >> > like oracle's TIMESTAMPTZ, how do I use JOOQ to query and oracle > table > >> > to > >> > pull back the table's schema/metadata. > >> > >> The general approach would be to use jOOQ's code generator as > >> described in the tutorial: > >> > >> > http://www.jooq.org/doc/2.6/manual/getting-started/tutorials/jooq-in-7-steps/ > >> > >> It will then generate the necessary meta data for type-safe data type > >> handling. Since you ultimately want to convert from / to jodatime > >> DateTime objects, you may want to consider the manual's sections about > >> custom data type conversion. This section explains what a converter > >> is: > >> > >> > http://www.jooq.org/doc/2.6/manual/sql-execution/fetching/data-type-conversion/ > > >> > >> And this section explains how to let jOOQ's code generator apply > >> converters to generated meta data: > >> http://www.jooq.org/doc/2.6/manual/code-generation/custom-data-types/ > >> > >> Hope this helps, > >> Lukas >
