Super Simple Java ORM Framework For SQL Happy Developers Super simples quadro para SQL java ORM feliz desenvolvedores
I previously mentioned that I intended not to use any Java ORM frameworks. Eu que me referi anteriormente destinados a não utilizar qualquer Java ORM quadros. ORM frameworks I have seen so far have a steep learning curve and tend to shoe horn your architecture into their model. ORM quadros que eu vi até agora têm uma curva de aprendizado íngreme e tendem a buzina sapato em sua arquitetura seu modelo. So I started fresh without any ORM frameworks like Hibernate or Spring (which I have heard is better). Então eu comecei fresco, sem qualquer ORM quadros como Hibernate ou Primavera (que eu ouvi é melhor).
I am happy coding my queries in SQL and don’t need to use any ORM specific language like Hibernate OQL. Estou feliz codificação minhas consultas no SQL e não precisam de utilizar qualquer ORM língua específica como Hibernate OQL. SQL is best for what it does. SQL é melhor para o que faz. Why re-invent the wheel? Por que reinventar a roda? Also I like the fine-grained control over my database as I am processing very large amount of data. Eu também gosto de multa de grãos controle sobre a minha base como eu sou de transformação muito grande quantidade de dados. My experience will be primarily relevant to sql happy java developers. Minha experiência será principalmente relevante para sql feliz desenvolvedores Java.
In the process (of working without any ORM framework) I realized I just needed two simple facilities over plain old JDBC. No decorrer do processo (de trabalho, sem qualquer enquadramento ORM), percebi eu só preciso duas instalações mais simples planície velho JDBC.
1. I needed a way to put all the SQL queries and DDL’s in a separate file. Eu precisava de uma forma de colocar todas as consultas SQL e DDL's em um arquivo separado. This allows me or a DBA to later analyze the query with a fine tooth comb and optimize if necessary. Isto permite-me um DBA ou mais tarde a analisar a consulta com um pente fino dente e otimizar, se necessário. It also allows me to easily change them without changing the code. Também me permite alterar facilmente deles sem alterar o código. Most of all cleanliness of the solution is appealing. Acima de tudo, a solução de limpeza é atraente. At this point I am sure you are thinking of iBatis. Neste ponto, estou certo de que você está pensando iBatis. I tried iBatis. Tentei iBatis. Initially I liked it and thought I had my solution. Inicialmente eu pensei que eu gostava e que tinha a minha solução. However as I went down the lane I realized it too gave me features that I didn’t need. No entanto, tal como eu fui pressionada a faixa percebeu que eu também me deu as características que eu não precisava. Even this was more complicated than I needed. Mesmo este era mais complicada do que eu precisava. All I needed was a HashMap saved to a file in XML format. Tudo o que era necessário um HashMap guardados em um arquivo em formato XML. And my database class should support query execution by name (think key-value). E minha classe base devem apoiar a execução query nome (pense-chave valor).
2. Secondly I needed connection pooling to prevent opening and closing too many connections and also running out of connections. Em segundo lugar eu precisava conexão pooling para evitar abertura e fecho de muitas ligações e também ficar sem conexões. I found a nice solution in Proxool. Eu encontrei uma solução em Proxool agradável. Additionally it supports having multiple connection profiles in a simple text file and optionally logging queries. Além disso, ele suporta conexão com vários perfis em um arquivo texto simples e, opcionalmente, registrando buscas.
3. I needed to integrate these two capabilities in a simple database class along with utility methods like cleanly closing connection and optionally logging the query data. Eu necessária para a integração destas duas capacidades em um banco de dados simples classe junto com métodos como a utilidade limpa fechar conexão e, opcionalmente, registrando a consulta de dados.
That’s all there is in my super simple framework, if you can even call it that. Isso é tudo que existe no meu super simples quadro, se você pode até mesmo chamar-lhe isso. And, believe it or not, I am way more productive using it than I have been in a long time and I feel fully in control. E, creiam ou não, estou a maneira de usá-la mais produtiva do que tenho sido, em muito tempo e me sinto plenamente em controle. No more burden of shoe horning my ideas to fit FooBah framework and its ideologies for me. Não há mais carga de sapato horning minhas ideias para se ajustarem suas ideologias FooBah quadro e para mim.
Update: There has been extensive discussion on this post at the Update: Tem havido um debate aprofundado sobre este post no ServerSide .
Filed under Arquivado em Headline News Headline News , De How To How To , De Java Software Java Software , De Tech Note Nota Tech , De Technology Tecnologia | |
| |
RSS 2.0 RSS 2,0 | |
Trackback this Article | este artigo |
Email this Article E-mail este artigo
You may also like to read Você pode também gosta de ler |




August 19th, 2006 at 9:33 am 19 de agosto de 2006 em 9:33 am
[...] I wrote about how I use a simple Java framework instead of ORM like Hibernate or Spring for effectively solving my data handling requirements. [...] Eu escrevi sobre a forma como eu uso um simples quadro em vez de Java ORM como Hibernate ou Primavera para resolver eficazmente os meus dados movimentação requisitos. It has made me tremendously productive. Fez-me tremendamente produtivo. It sparked a major debate in ServerSide. Ele deflagrou um grande debate no ServerSide. So I decided to provide more details about my ORM-replacement framework. Então eu decidi-me fornecer mais informações sobre a minha substituição ORM-quadro. My needs are simple and are likely to match with any SQL happy Java developers. Minhas necessidades são simples e são susceptíveis de corresponder com qualquer SQL feliz desenvolvedores Java. [...]
August 29th, 2006 at 1:01 pm 29 de agosto de 2006 em 1:01 pm
Would you mind posting or emailing me the class you mentioned in number 3? Deseja que mente destacamento ou enviando-me o que referiu na classe número 3?
Thanks, Obrigado,
Jason
August 29th, 2006 at 11:37 pm 29 de agosto de 2006 em 11:37 pm
Simple needs means simple framework. Simple necessidades meios simples quadro. I am releasing an invoice application base on a db framework I build from scratch. Estou lançando uma factura relativa a um pedido base db quadro I construir a partir do zero. It allows me to define a model with objects of the DB, to share data, lock records, make paged queries in a client/server way. Ele me permite definir um modelo de objetos com o banco de dados, para partilhar dados, bloquear registros, fazer buscas paginadas, em um cliente / servidor maneira. You don’t mind if you are working with the client or the server side: tha api is THE SAME. Você não se importa se você está trabalhando com o cliente ou o lado do servidor: tha API é a mesma. And you can still use any SQL, low level, query. E você ainda pode usar qualquer SQL, de baixo nível, a consulta. Maybe in the future I could add an object/orm layer, but it is not badly needed now. Talvez no futuro eu poderia acrescentar um objeto / orm camada, mas não é tão necessário neste momento. It is true that your framework is enough for your requirements, but I think it is not for more complex targets. É verdade que o seu quadro é suficiente para suas necessidades, mas penso que não é mais complexa para os alvos.
August 30th, 2006 at 12:39 am 30 de agosto de 2006 em 12:39 am
Sure. Certo. I have received lots of email asking for the framework, if you can even call it that. Tenho recebido muitos e-mails de pedir ao quadro, se você pode até mesmo chamar-lhe isso.
I will post it as soon as I get some spare cycles. Vou postá-la logo que eu recebo algumas peças sobressalentes ciclos. It would be nice to have it better commented which I need to do. Seria bom ter-lo melhor comentou que eu preciso de fazer.
The earliest I can think of is next week or week after that. O mais rapidamente do que posso pensar é na próxima semana ou uma semana depois disso.
September 20th, 2006 at 12:07 pm 20 de setembro de 2006 em 12:07 pm
I agree 100% with you. Concordo 100% com você. I have been fighting a battle with so-called-architects of our company who wish to use ORM without even doing a real-world proof of concept. Tenho vindo a lutar contra uma batalha com a chamada de arquitetos da nossa empresa que deseja usar ORM sem sequer fazer um mundo real-prova de conceito.
I wrote a super simple framework myself and am really happy to see how I was able to write apps faster. Eu escrevi um super simples quadro mim e estou realmente feliz de ver como eu era capaz de escrever aplicações mais rápido. And this was after I started app with Hibernate and got stuck because of not able to write (rather convert) a complex SQL to HQL and none of the experts here could do it either. E este foi depois que eu comecei app com Hibernate e ficou preso por causa de não poder escrever (sim converter) um complexo SQL para HQL e nenhum dos peritos aqui poderia fazê-lo também. I am no expert, but I know if it ain’t helping me get my job done, it ain’t right. Não sou especialista, mas sei se ele não está ajudando-me começar meu trabalho feito, não é de direita.
October 26th, 2006 at 2:55 pm Oct 26, 2006, às 2:55 pm
Hi, have you published the code yet? Oi, você ter publicado o código ainda? I cant find a reference anywhere. I cant encontrar uma referência em qualquer lugar.