我是一名长期的前端开发人员,需要用 Java 做一些后端工作。我熟悉 CF 和 .Net 中的数据库访问技术,但在 Java 方面没有太多经验。我正在构建一个必须由我自己或经验不足的开发人员支持的应用程序。
是否有一个相当简单的设置和易于理解的 Java 数据库访问系统?我觉得 Hibernate 对我的团队来说太过分了,但是直接使用 JDBC 会让我重新发明轮子。
在此先感谢,罗伯特
试试 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
尝试不同的东西,看看 JDO。
正如 Daniel 所建议的那样,我个人在许多项目中都使用了 MyBatis,它很棒。简单来说,MyBatis 是把你的 SQL 查询的结果表映射到 Java 对象上,所以你还是需要写很多 SQL。
在我看来,如果你的数据库模式不能很好地符合面向对象的设计,MyBatis 会很棒。我从事的一个项目有遗留数据库模式,需要我编写递归 SQL 来检索数据,而 MyBatis 在这方面工作得非常好。
是否有一个相当简单的设置和易于理解的 Java 数据库访问系统?
我的ORMLite 包旨在满足这些特定要求——在 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);
您可以尝试基于域对象的键值架构的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();
为 MyBatis +1。如果您想完全控制您使用的 SQL,这是一个不错的选择。