1

我是一名长期的前端开发人员,需要用 Java 做一些后端工作。我熟悉 CF 和 .Net 中的数据库访问技术,但在 Java 方面没有太多经验。我正在构建一个必须由我自己或经验不足的开发人员支持的应用程序。

是否有一个相当简单的设置和易于理解的 Java 数据库访问系统?我觉得 Hibernate 对我的团队来说太过分了,但是直接使用 JDBC 会让我重新发明轮子。

在此先感谢,罗伯特

4

7 回答 7

1

JPA/Hibernate 有许多更易于使用的替代方案。因为我是作者,所以我偏爱sormula 。您有几个使用 sormula 的选项,包括零配置基于 DAO活动记录自定义

于 2013-01-20T20:45:39.947 回答
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

于 2016-06-17T19:14:41.617 回答
0

尝试不同的东西,看看 JDO。

于 2012-06-14T18:59:22.293 回答
0

正如 Daniel 所建议的那样,我个人在许多项目中都使用了 MyBatis,它很棒。简单来说,MyBatis 是把你的 SQL 查询的结果表映射到 Java 对象上,所以你还是需要写很多 SQL。

在我看来,如果你的数据库模式不能很好地符合面向对象的设计,MyBatis 会很棒。我从事的一个项目有遗留数据库模式,需要我编写递归 SQL 来检索数据,而 MyBatis 在这方面工作得非常好。

于 2012-06-14T19:45:23.947 回答
0

是否有一个相当简单的设置和易于理解的 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);
于 2012-06-14T20:40:22.353 回答
0

您可以尝试基于域对象的键值架构的Ujorm框架。主要特点:

  • java 编译器发现数据库查询中的大部分语法错误
  • 无需XML配置即可通过java源代码轻松配置ORM模型
  • 可选支持延迟加载或关系的一请求数据加载
  • 数据库表、列和索引可以在运行时根据 Java 元模型可选地更新
  • 没有代理或二进制修改的业务对象
  • 非常轻量级的框架,在运行时没有库依赖
  • 很棒的演出

示例代码:

 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();
于 2013-01-20T20:05:32.927 回答
-1

为 MyBatis +1。如果您想完全控制您使用的 SQL,这是一个不错的选择。

于 2012-06-14T19:09:13.893 回答