初识Ebean
Ebean简介(简单介绍)
Ebean是一个使用纯Java实现的对象/关系映射的开源ORM框架。使用条件:已安装Java 8或更高版本。
宗旨:Ebean力求让使用最简单的API帮助开发者从数据库获取有用的数据信息。
官网 https://ebean.io/
Ebean的使用
1· 使用Maven/Gradle 我接触Maven比较多,所以示例使用maven
2· 需要安装idea插件https://ebean.io/docs/getting-started/intellij-idea
文档介绍的很清楚了,在此不过多的描述
效果:如图所示
3· pom包
<dependency>
<groupId> io.ebean </ groupId>
<artifactId> ebean </ artifactId>
<version> 12.5.2 </ version>
</dependency>
<!-- Query bean support -->
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-querybean</artifactId>
<version>12.5.2</version>
</dependency>
<!-- APT Query bean generation for Java -->
<dependency>
<groupId>io.ebean</groupId>
<artifactId>querybean-generator</artifactId>
<version>12.5.2</version>
<scope>provided</scope>
</dependency>
<!-- includes docker test database container support -->
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-test</artifactId>
<version>12.5.2</version>
<scope>test</scope>
</dependency>
4· 插件
<plugin>
<groupId>io.repaint.maven</groupId>
<artifactId>tiles-maven-plugin</artifactId>
<version>2.17</version>
<extensions>true</extensions>
<configuration>
<tiles>
<!-- other tiles ... -->
<tile>io.ebean.tile:enhancement:12.5.2</tile>
</tiles>
</configuration>
</plugin>
配置文件 ebean.properties
ebean.search.packages= com.student.entity // 实体类的包,必须要配置,不然会报错找不到
# the name of the default server
datasource.default=db
datasource.db.username=
datasource.db.password=
datasource.db.databaseUrl=
datasource.db.databaseDriver=com.mysql.jdbc.Driver
#ebean.ddl.generate=true // 开启生成数据表
#ebean.ddl.run=true // 运行(以上这两个必须同时开启,不然不起作用)
ebean.debug.lazyload=false
ebean.debug.sql=true
ebean.ddl.sql=true
ebean.logging=all
ebean.logging.directory=logs
ebean.logging.iud=sql
ebean.logging.logfilesharing=all
ebean.logging.query=sql
ebean.logging.sqlquery=sql
ebean.logging.txnCommit=none
(注)还需要增加一个ebean.mf文件,具体什么用我现在还没有研究,不增加会报错,增加了没有内容也不影响使用
增加user实体类
@Entity
@Table(name = "user")
@Data // lombok的注解,不需要写get和set
public class User extends Model implements Serializable {
@Id
@GeneratedValue
@Column(name = "user_id")
private Integer userId;
private String username;
private String password;
private String phone;
这里为什么要继承Model呢?Model是ebean的一个包,继承以后可以直接使用bean对象.save()方法来保存
注:如果修改了实体类,必须要重新编译,否则提交到服务器的时候出现ClassNotFound错误
查询
查询单个对象
public User findByUserName(String username) {
Query<User> user = DB.find(User.class);
User users = user.where().eq("username" ,username).findOne();
return users;
}
查询list,条件(多条件),模糊搜索,排序,分页
public List<User> findList(Integer pageNo, Integer pageSize, String username) {
Query<User> user = DB.find(User.class);
user.where().eq("userStatus","0");
if(username != null && !username.equals("") ){
user.where().like("username" , "%"+username+"%");
}
user.orderBy("userId desc");
user.setFirstRow((pageNo-1)*pageSize);
user.setMaxRows(pageSize);
List<User> users = user.findList();
return users;
}
新增
必须实体类继承Model才可以直接写(不局限于dao层,在controller/serviceImpl中都可以)
User user = new User();
user.setPassword("1111");
user.setUsername("演示");
user.save();
否则就得在dao层
DB.save(user);
修改
User user = findByUserName(username);
user.setPassword("1111");
user.setUsername("演示");
user.save();
save方法:如果存在则修改,不存在则新增,,所以为了简单,我都使用save
删除
返回是boolean类型,由此可以判断删除是否成功
public Boolean deleteById(Long userId) {
int row = DB.delete(User.class,userId);
if(row >0){
return true;
}
return false;
}