我是一名需要在Java中进行后端工作的长期前端开发人员。我熟悉CF和.Net中的数据库访问技术,但在Java方面没有太多经验。我正在构建一个必须由我自己或经验不足的开发人员支持的应用程序。
是否有一个相当简单的设置和易于理解的数据库访问系统的Java?我觉得Hibernate对我的团队来说太过分了,但直接的JDBC会让我重新发明轮子。
提前致谢, 罗伯特
答案 0 :(得分:1)
JPA / Hibernate有很多替代方法,使用起来更简单。因为我是作者,所以我偏向sormula。您可以使用sormula选项,包括zero-configuration,DAO based,active record或custom。
答案 1 :(得分:1)
尝试ActiveJDBC:http://javalite.io/activejdbc。它是Java中的高性能轻量级ActiveRecord实现。随附您需要的一切(可能还有更多)。 快速举例:
CREATE TABLE people (
id int(11) NOT NULL auto_increment PRIMARY KEY,
first_name VARCHAR(56) NOT NULL,
last_name VARCHAR(56));
对应模型:
public class Person extends Model {}
查询:
List<Person> marks = Person.where("name = ?", "Mark");
保存:
Person p = new Person();
p.set("first_name", "John", "last_name", "Doe").saveIt();
还有更多内容,请访问:http://javalite.io/documentation
答案 2 :(得分:0)
尝试不同的东西,看看JDO。
答案 3 :(得分:0)
我亲自使用了丹尼尔建议的MyBatis,用于许多项目,这很棒。简单地说,MyBatis将SQL查询的结果表映射到Java对象,因此您仍然需要编写大量SQL。
在我看来,如果您的数据库架构与面向对象的设计不完全一致,MyBatis就很棒。我工作的项目之一有遗留数据库模式,要求我编写递归SQL来检索数据,而MyBatis在这方面的工作非常好。
答案 4 :(得分:0)
是否有一个相当简单的设置和易于理解的数据库访问系统的Java?
我的ORMLite package旨在满足这些特定要求 - 一个基于JDBC的简单层。您可以使用注释或以编程方式配置数据库实体。在尝试保持KISS时支持一些中级ORM功能。
示例实体:
@DatabaseTable(tableName = "accounts")
public class Account {
@DatabaseField(id = true)
private String name;
...
样本用法:
// this uses h2 but you can change it to match your database
ConnectionSource connectionSource =
new JdbcConnectionSource("jdbc:h2:mem:account");
Dao<Account,String> accountDao =
DaoManager.createDao(connectionSource, Account.class);
// create new table
TableUtils.createTable(connectionSource, Account.class);
// persist an instance of Account
Account account = new Account("Jim Smith");
accountDao.create(account);
答案 5 :(得分:0)
您可以根据域对象的键值架构尝试Ujorm框架。主要特点:
示例代码:
Criterion<Item> crn1, crn2, criterion;
crn1 = Item.ID.whereGe(1L);
crn2 = Item.ORDER.add(NOTE).whereEq("My order");
criterion = crn1.and(crn2);
Session session = ormHandler.createSession();
for (Item item : session.createQuery(criterion)) {
Date created = item.getOrder().getDate();
System.out.println( item + " : " + created );
}
session.close();
答案 6 :(得分:-1)
为MyBatis +1。如果您想完全控制您使用的SQL,这是一个不错的选择。