首页 > 编程语言 >Java革命性ORM框架之快速上手的Jimmer

Java革命性ORM框架之快速上手的Jimmer

时间:2023-06-06 13:22:55浏览次数:46  
标签:Java name 数据库 jim Person ORM Jimmer

Jimmer是一款革命性的ORM框架,它的目标是提供一个简单易用的API,帮助开发人员更加轻松地操作数据库。Jimmer使用了Java 8的新特性,如Lambda表达式和Stream API,使得代码更加简洁、易读。本文将详细介绍Jimmer的基本用法,并提供一些Java代码案例说明。

1. 什么是ORM?

在介绍Jimmer之前,首先要了解什么是ORM。

ORM是Object-Relational Mapping的缩写,中文意思为对象关系映射

它是一种将关系数据库中的数据转换为对象的过程,使得开发者可以像操作对象一样对数据库进行操作。ORM将数据库表映射为对象,以及将表中的行映射为对象的属性,将表中的列映射为对象属性的值。因此ORM可以使得开发人员不必编写复杂的SQL语句,而是通过简单的API操作数据库,大大提高了开发效率。

其实ORM非常好理解,我们大家想象一下,如果你是一个程序员,你需要去约会你的女友,但是你只知道她的姓名和电话号码。在以前,你需要自己去找她的地址,但是现在,有了ORM,你只需要把姓名和电话号码输入到ORM中,它就会自动帮你找到她的地址。 这不就是ORM的作用吗?

再举个例子,如果你是一个爱好电影的人,你可能会想从数据库中获取电影信息。但是,如果你没有ORM,你需要自己去编写SQL语句来查询数据库。而有了ORM,你只需要定义一些对象,然后就可以通过这些对象来操作数据库,就像使用面向对象的语言一样。

总之,ORM就是程序员和数据库之间的媒婆,让他们之间的交流更加顺畅。

2. 为什么选择Jimmer?

通过上述的描述大家已经基本清楚了ORM的概念,那么接下里我们就来看看大家为什么会选择Jimmer呢?以及在ORM框架的选择上,Jimmer有哪些优点呢?大家可以参考下列描述哦!

● 易于学习和使用。Jimmer提供了简洁、易读的API,使得开发人员可以快速上手。

● 支持Java 8的新特性。Jimmer使用了Java 8的新特性,如Lambda表达式和Stream API,使得代码更加简洁、易读。

● 性能优异。Jimmer使用了缓存和预编译等技术,使得数据库操作速度更快。

● 兼容性好。Jimmer支持多种数据库,包括MySQL、Oracle、PostgreSQL等。

3. Jimmer的使用

好啦,在了解了关于Jimmer的一些好处之后,就让我们一起来看看关于Jimmer的安装吧,其实,在使用Jimmer之前,首先需要将其添加到项目依赖中。可以通过Maven或Gradle进行添加。以下是添加Maven依赖的示例代码:

 <dependency>
   <groupId>com.jimmer</groupId>
   <artifactId>jimmer-core</artifactId>
   <version>1.0.0</version>
</dependency>

3.1 连接数据库

在使用Jimmer之前,需要先连接数据库。可以通过以下代码进行连接:

JimmerConfig config = new JimmerConfig();
config.setJdbcUrl("jdbc:mysql://localhost/mydatabase");
config.setUsername("myuser");
config.setPassword("mypassword");
Jimmer jim = new Jimmer(config);

在这里,我们使用JimmerConfig类来设置数据库的连接信息,包括JDBC URL、用户名和密码。然后,我们通过Jimmer类来实例化一个Jimmer对象,用于后续的数据库操作。

3.2 创建表

创建相应的表。可以通过以下代码进行创建:

jim.createTable(Person.class);

在这里,我们使用Jimmer的createTable()方法来创建表。其中,Person是一个POJO(Plain Old Java Object)类,表示一个人的信息。

public class Person {
    @Column(name = "id", type = ColumnType.INTEGER, autoIncrement = true, primaryKey = true)
    private int id;

    @Column(name = "name", type = ColumnType.STRING, length = 50)
    private String name;

    @Column(name = "age", type = ColumnType.INTEGER)
    private int age;

    // 省略getter和setter方法
}

在这个例子中,我们使用@Column注解来定义表的列。其中,name表示列名,type表示列的数据类型,autoIncrement表示是否自增,primaryKey表示是否为主键。可以通过在POJO类中使用@Column注解来定义表的结构。

3.2 插入数据

在创建表之后,可以通过以下代码进行数据插入:

Person person = new Person();
person.setName("张三");
person.setAge(20);
jim.insert(person);

这里我们创建了一个Person对象,并通过jim.insert()方法将其插入到数据库中。

3.3 查询数据

在插入数据之后,可以通过以下代码进行数据查询:

List persons = jim.select(Person.class)
                           .where("name", "张三")
                           .orderBy("age", OrderByType.DESC)
                           .limit(10)
                           .offset(0)
                           .execute();

这里我们使用jim.select()方法来查询Person表中所有名字为“张三”的人,并按照年龄降序排列,查询前10条数据。其中,where()方法用于筛选条件,orderBy()方法用于排序,limit()方法用于限制返回结果的数量,offset()方法用于指定返回结果的偏移量。

3.4 更新数据

在查询数据之后,可以通过以下代码进行数据更新:

Person person = jim.select(Person.class)
                   .where("name", "张三")
                   .executeSingle();
person.setAge(21);
jim.update(person);

这里我们使用jim.select()方法查询名字为“张三”的人,并将其年龄更新为21岁。

3.5 删除数据

在更新数据之后,可以通过以下代码进行数据删除:

jim.delete(Person.class)
    .where("name", "张三")
    .execute();

这里我们使用jim.delete()方法删除所有名字为“张三”的人。

4. 总结

通过上述的了解,我们清楚了Jimmer确实是一款非常简单易用的ORM框架,通过使用Java 8的新特性,使得代码更加简洁、易读。使用Jimmer可以轻松地进行数据库操作,大大提高了开发效率。

如今在实际的开发中,ORM框架已经成为了必备的一部分,Jimmer也是一款值得推荐的ORM框架。希望本文能够帮助到大家更好地使用Jimmer哦。


以上就是本文的全部内容了,关于jimmer这个简单易用的版本,你了解了吗?

标签:Java,name,数据库,jim,Person,ORM,Jimmer
From: https://www.cnblogs.com/qian-fen/p/17460295.html

相关文章

  • GORM支持的全部标签
    column:指定数据库中的字段名,例如:column:name。type:指定数据库中的字段类型,例如:type:varchar(255)。size:指定字段的大小,例如:size:255。primaryKey:指定该字段为主键,例如:primaryKey。autoIncrement:指定该字段自增,例如:autoIncrement。default:指定该字段的默认值,例如:defaul......
  • java中equals与matches区别
    matches:判断字符是否与指定的正则表达式相匹配equals:判断二个字符串是否相等举例:1.看例题https://www.nowcoder.com/share/jump/3295745116860251147252.看例题https://www.nowcoder.com/share/jump/329574511686025148552总结:一个是判断是否符合正则表达式规则,另一个是判断是......
  • storm任务示例
    LogProcess.javapackagemytest;importjava.io.BufferedReader;importjava.io.BufferedWriter;importjava.io.File;importjava.io.FileNotFoundException;importjava.io.FileOutputStream;importjava.io.FileReader;importjava.io.FileWriter;importjava.i......
  • 利用Spring AOP与JAVA注解为系统增加日志功能
    SpringAOP一直是Spring的一个比较有特色的功能,利用它可以在现有的代码的任何地方,嵌入我们所想的逻辑功能,并且不需要改变我们现有的代码结构。   鉴于此,现在的系统已经完成了所有的功能的开发,我们需要把系统的操作日志记录起来,以方便查看某人某时执行了哪一些操作。SpringAOP可......
  • Storm-源码分析-Topology Submit-Client
    1StormClient最开始使用storm命令来启动topology,如下stormjarstorm-starter-0.0.1-SNAPSHOT-standalone.jarstorm.starter.WordCountTopology这个storm命令是用python实现的,看看其中的jar函数,很简单,调用exec_storm_class,其中jvmtype=”-client” 而exec_storm_clas......
  • org.codehaus.plexus.archiver.jar.Manifest.write(java.io.PrintWriter)
    DescriptionResourcePathLocationTypeorg.codehaus.plexus.archiver.jar.Manifest.write(java.io.PrintWriter)pom.xml/gs-rest-serviceline1MavenConfigurationProblem在学习springboot实例时,发现了这个Maven配置错误,但是不影响springboot运行。问题......
  • JAVA学习笔记基础篇_02
    ------------恢复内容开始------------#java高级应用1.补充当方法中不存在与对象相关的方法时比如直接的数字计算输出等都可以写成静态方法集合成一个工具类1.类变量与类方法(静态变量/静态方法)也就是记录变量和方法的使用次数,每次随着类的生成而生成随着类的......
  • java反编译工具jd-gui和插件jd-eclipse,还有插件Enhanced Class Decompiler 3.3.0
    JD-GUI和JD-ECLIPSE可以直接在下面的网址进行下载http://java-decompiler.github.io/ (1)注意:JD-GUI.exe单机版有很多版本,有些旧版本反编译出来的源码和高版本反编译出来的源码是区别的1.低版本的反编译可能和实际源码有出入2.1.6.6版本反编译的源码中有中文无法正常复制? ......
  • Qt迭代器(Java类型和STL类型)详解
    迭代器为访问容器类里的数据项提供了统一的方法,Qt有两种迭代器类:Java类型的迭代器和STL类型的迭代器。两者比较,Java类型的迭代器更易于使用,且提供一些高级功能,而STL类型的迭代器效率更高。 Java类型迭代器对于每个容器类,有两个Java类型迭代器:一个用于只读操作,一个用于......
  • 浅谈mysql索引类型(normal、unique、full textl) 的区别和使用场景
    mysql索引类型mysql索引类型normal,unique,fulltext的区别是什么?normal:表示普通索引unique:表示唯一的,不允许重复的索引,如果该字段信息保证不会重复例如身份证号用作索引时,可设置为uniquefulltextl:表示全文搜索的索引。FULLTEXT用于搜索很长一篇文章的时候,效果最好。用在......