Ebean, 被国人冷落的 ORM 框架(保姆级教程)

Ebean,是一个与mybatis、hibernate同类型的orm框架,但是却极为简洁、高效。

它不需要mybatis繁琐的配置,也不需要hibernate死板的标准 操作,但是却可以实现上述二者的效果。比如缓存技术、对象映射,甚至他们没有的功能,比如级联查询和操作。

项目概况:

开发工具: IDEA

MVC 框架:Spring MVC 5.3

构建:gradle

说明:在配置 ebean 之前,要确保 spring mvc 能正确运行!

第一步:配置 gradle,启用插件

plugins {
    id 'java'    // 项目默认配置
    id 'io.ebean' version '12.15.1'    // 增加一项,以便使用 ebean 增强
}

第二步:在 gradle 配置文件中添加依赖,ebean核心库

    // 配置 ebean
    implementation group: 'io.ebean', name: 'ebean', version: '12.16.3'
    implementation 'io.ebean:ebean-querybean:12.16.3'
    implementation 'io.ebean:ebean-ddl-generator:12.16.3'
    // 配置 ebean 结束

第三步:在 gradle 配置文件中,配置使用 ebean 增强

ebean {
    debugLevel = 1
}

以上三步完成后,你的 gradle 配置文件应该如下所示,其他配置项省略(如 Spring 的配置等):

plugins {
    id 'java'
    id 'io.ebean' version '12.15.1'
}

dependencies {
    // 配置 ebean
    implementation group: 'io.ebean', name: 'ebean', version: '12.16.3'
    implementation 'io.ebean:ebean-querybean:12.16.3'
    implementation 'io.ebean:ebean-ddl-generator:12.16.3'
    // 配置 ebean 结束

    // 其他依赖项
}

ebean {
    debugLevel = 1
}

// 其他 gradle  配置

第四步:配置 spring-ebean.xml ,并确保该文件能被项目正确加载

<!-- mysql 的连接配置在 jdbc.properties 文件中,同样在 resources 文件夹下 -->
<context:property-placeholder ignore-unresolvable="true" location="classpath:jdbc.properties" system-properties-mode="OVERRIDE"/>
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
        <property name="jdbcUrl" value="${ds18.jdbc.url}"></property>
        <property name="driverClass" value="${ds18.jdbc.driver}"></property>
        <property name="user" value="${ds18.jdbc.username}"></property>
        <property name="password" value="${ds18.jdbc.password}"></property>
    </bean>

    <!-- Ebean Server 配置 -->
    <bean id="ebeanServer" class="io.ebean.DatabaseFactory" factory-method="create">
        <constructor-arg>
            <bean class="io.ebean.config.DatabaseConfig">
                <property name="name" value="db" />
                <property name="dataSource" ref="dataSource" />
            </bean>
        </constructor-arg>
    </bean>

第五步:在 resources 路径下,新建 ebean.mf 文件。配置 ebean 的扫描路径,需要 ebean 自动化管理的实体类等,需要在这个目录下。 

ebean.classes=com.eagsen.taovel.db.**

第六步:在上述配置的路径下,新建一个实体类 User ,用于测试。

@Entity
@Table(name = "user_base") // 与表名一致
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    int u_id;
    String u_mobile;
    String u_nick;
    // set ,get 方法省略
}

第七步:在控制器方法中测试

    // 测试 ebean insert
    @GetMapping({"/ebean/insert"})
    public String insertUser() {
        try {
            User user = new User();
            user.setU_mobile("139****1884");
            user.setU_nick("昵称");
            dbFactory.save(user);
            int id = user.getU_id();    // 自动生成的id
        } catch (Exception e) {
            int i;
            e.printStackTrace();
        }
        return "test-croppie";
    }

    // 测试 ebean delete
    @GetMapping({"/ebean/delete"})
    public String deleteUser() {
        try {
            User user = new User();
            user.setU_id(3);

            boolean b = dbFactory.delete(user);
            int id = 0;
        } catch (Exception e) {
            int i;
            e.printStackTrace();
        }
        return "test-croppie";
    }

    // 测试 ebean update
    @GetMapping({"/ebean/update"})
    public String updateUser() {
        try {
            User user = new User();
            user.setU_id(3);
            user.setU_nick("不说脏话");
            dbFactory.update(user);
            int id = 0;
        } catch (Exception e) {
            int i;
            e.printStackTrace();
        }
        return "test-croppie";
    }

    // 测试 ebean find
    @GetMapping({"/ebean/find"})
    public String findUser() {
        try {
            User user = new User();
            user.setU_id(3);
            List<User> users = dbFactory.find(User.class).where().eq("u_status",1).findList();
            int id = 0;
        } catch (Exception e) {
            int i;
            e.printStackTrace();
        }
        return "test-croppie";
    }

第八步:安装 ebean 增强插件。这一步在某些 idea 版本中不是必须的,但是最好检查一下。

在 Setting 中,左侧导航到 plugins ,右侧搜索 ebean enhancer,安装!

结论:Ebean 是一个号称轻量级的 ORM 对象,但是可以做任何 Mybatis 做的事情,也可以做 Mybatis 做不了的事情。但是 Ebean 的中文资料极为稀缺,在国内是一个小众技术路线。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java的ORM框架有很多,其中比较流行的有Hibernate、MyBatis、JPA、Ebean等。下面是Ebean框架的使用方法: 1. Ebean是一个Java实现的ORM框架,可以通过注解的方式将Java对象映射到数据库表中,从而实现对象和关系数据库之间的映射。 2. 首先需要创建一个Maven工程,并在pom.xml文件中引入Ebean的依赖: ```xml <dependencies> <dependency> <groupId>io.ebean</groupId> <artifactId>ebean</artifactId> <version>12.1.6</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.31</version> </dependency> </dependencies> ``` 3. 创建一个连接数据库的工具类,可以使用JDBC或者连接池技术来实现。下面是一个使用JDBC连接MySQL数据库的示例: ```java import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class DBUtil { private static final String URL = "jdbc:mysql://localhost:3306/test"; private static final String USER = "root"; private static final String PASSWORD = "123456"; public static Connection getConnection() { Connection conn = null; try { Class.forName("com.mysql.cj.jdbc.Driver"); conn = DriverManager.getConnection(URL, USER, PASSWORD); } catch (ClassNotFoundException | SQLException e) { e.printStackTrace(); } return conn; } } ``` 4. 在Java类中使用注解来映射数据库表和字段。下面是一个使用Ebean框架的示例: ```java import io.ebean.Model; import io.ebean.annotation.NotNull; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Table; @Entity @Table(name = "user") public class User extends Model { @Id private Long id; @NotNull @Column(name = "name") private String name; @Column(name = "age") private Integer age; // getter和setter方法省略 } ``` 5. 使用Ebean框架进行数据访问。下面是一个使用Ebean框架查询用户信息的示例: ```java import io.ebean.Ebean; import io.ebean.EbeanServer; import java.util.List; public class UserDao { private static final EbeanServer ebeanServer = Ebean.getDefaultServer(); public List<User> findAll() { return ebeanServer.find(User.class).findList(); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值