千家信息网

如何使用Jorm增删查改数据库

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要介绍"如何使用Jorm增删查改数据库",在日常操作中,相信很多人在如何使用Jorm增删查改数据库问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"如何使用Jor
千家信息网最后更新 2026年11月02日如何使用Jorm增删查改数据库

这篇文章主要介绍"如何使用Jorm增删查改数据库",在日常操作中,相信很多人在如何使用Jorm增删查改数据库问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"如何使用Jorm增删查改数据库"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

> 准备
以MySQL为例,执行下面的sql建立数据表
CREATE TABLE `t_user` (
`id` int(11) NOT NULL,
`name` varchar(50) DEFAULT NULL,
`sex` char(4) DEFAULT NULL,
`age` int(11) DEFAULT NULL,
`career` varchar(100) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

> 引入jar或maven依赖,需要jar包
gerald-jorm-1.0.5.jar 最新版本下载:
commons-logging-1.1.1.jar
log4j-1.2.14.jar
mysql-connector-java-5.1.6.jar
javassist-3.11.0.GA.jar 或 cglib-nodep-2.2.2.jar (根据实际情况选择性加入)


> 配置文件
在你的java工程的classpath下建立config.properties和jdbc.cfg.xml文件
config.properties内容:
# 下面路径可以根据实际情况指定,为相对classpath的路径地址
jdbc.config.path=jdbc.cfg.xml

jdbc.cfg.xml内容:








org.javaclub.jorm.jdbc.connection.impl.SimpleConnection
MySQLDialect
com.mysql.jdbc.Driver
jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8
test
root
root


org.javaclub.jorm.jdbc.connection.impl.PooledConnection
MySQLDialect
com.mysql.jdbc.Driver
jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8
test
root
root
1
8
select 1



> 实体类User.java
@PK(value = "id")
@Entity(table="t_user")
public class User {

@Id
private int id;

private String name;

private String sex;

private Integer age;

private String career;

@NoColumn
private int kvalue;

public User() {
super();
}

public User(String name, String sex, Integer age, String career) {
super();
this.name = name;
this.sex = sex;
this.age = age;
this.career = career;
}

public User(Integer id, String name, String sex, Integer age, String career) {
super();
this.id = id;
this.name = name;
this.sex = sex;
this.age = age;
this.career = career;
}

public int getId() {
return id;
}

public void setId(int id) {
this.id = id;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getSex() {
return sex;
}

public void setSex(String sex) {
this.sex = sex;
}

public Integer getAge() {
return age;
}

public void setAge(Integer age) {
this.age = age;
}

public String getCareer() {
return career;
}

public void setCareer(String career) {
this.career = career;
}

public int getKvalue() {
return kvalue;
}

public void setKvalue(int kvalue) {
this.kvalue = kvalue;
}

public String toString() {
StringBuffer sb = new StringBuffer();
sb.append("[" + id + ", " + name + ", " + sex + ", " + age + ", " + career + "]");
return sb.toString();
}

}

这里字段和java实体类User的属性在命名上是一致的,如果不一致,比如如果表创建sql为:
CREATE TABLE `t_user` (
`user_id` int(11) NOT NULL,
`user_name` varchar(50) DEFAULT NULL,
`sex` char(4) DEFAULT NULL,
`col_age` int(11) DEFAULT NULL,
`career_job` varchar(100) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

那么对应的实体User应该写成:
@PK(value = "id")
@Entity(table="t_user")
public class User {

@Id
@Column("user_id")
private int id;

@Column("user_name")
private String name;

// 与数据库字段命名一致,可以不指定@Column
private String sex;

@Column("col_age")
private Integer age;

@Column("career_job")
private String career;

@NoColumn
private int kvalue;

public User() {
super();
}

public User(String name, String sex, Integer age, String career) {
super();
this.name = name;
this.sex = sex;
this.age = age;
this.career = career;
}

public User(Integer id, String name, String sex, Integer age, String career) {
super();
this.id = id;
this.name = name;
this.sex = sex;
this.age = age;
this.career = career;
}

public int getId() {
return id;
}

public void setId(int id) {
this.id = id;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getSex() {
return sex;
}

public void setSex(String sex) {
this.sex = sex;
}

public Integer getAge() {
return age;
}

public void setAge(Integer age) {
this.age = age;
}

public String getCareer() {
return career;
}

public void setCareer(String career) {
this.career = career;
}

public int getKvalue() {
return kvalue;
}

public void setKvalue(int kvalue) {
this.kvalue = kvalue;
}

public String toString() {
StringBuffer sb = new StringBuffer();
sb.append("[" + id + ", " + name + ", " + sex + ", " + age + ", " + career + "]");
return sb.toString();
}

}


> 对User的增删查改,UserCrudTest.java,记得引入junit-4.8.2.jar
public class UserCrudTest {

static Session session;

@BeforeClass
public static void before() {
session = Jorm.getSession();
}

@AfterClass
public static void after() {
Jorm.free();
}

@Test
public void save_user() {
session.clean(User.class);
User user = null;
for (int i = 0; i < 600; i++) {
String sex = (i % 2 == 0 ? "男" : "女");
user = new User(Strings.fixed(5), sex, Numbers.random(98), Strings.random(8));
session.save(user);
}
}

@Test // 批量保存
public void batch_save_user() {
session.clean(User.class);
JdbcBatcher batcher = session.createBatcher();
User user = null;
for (int i = 0; i < 600; i++) {
String sex = (i % 2 == 0 ? "男" : "女");
user = new User(Strings.fixed(5), sex, Numbers.random(98), Strings.random(8));
batcher.save(user);
}
batcher.execute();
}

@Test
public void loadUser() {
User user = session.read(User.class, 1);
// 这里user是一个代理对象,因为@Entity(table="t_user", lazy = true)
System.out.println(user.getCareer());// 发出查询sql
}

@Test
public void deletUser() {
User user = session.read(User.class, 1);
if(null != user) {
session.delete(user);
}
user = session.read(User.class, 1);
System.out.println(user);
}

@Test
public void test_update_proxy() {

User u;
u = session.read(User.class, 2);
Assert.assertNotNull(u);
Assert.assertTrue(u instanceof JormProxy);

u.setName("Gerald.Chen");
session.update(u);
System.out.println(u.getName());
u = session.read(User.class, 2);
Assert.assertTrue("Gerald.Chen".equals(u.getName()));
}

@Test
public void queryUser() {
SqlParams params = new SqlParams();
params.setObjectClass(User.class);
params.setFirstResult(8);
params.setMaxResults(20);
List users = session.list(params);
System.out.println(users.size());
System.out.println(users);
}

}


到此,关于"如何使用Jorm增删查改数据库"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

数据 数据库 学习 一致 实体 内容 字段 实际 情况 文件 更多 路径 帮助 实用 接下来 地址 对象 属性 工程 数据表 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技名片 江苏根荣互联网科技 上海互联网科技有限公司 贷财互联网科技 互联网科技logo设计 互联网金融科技委员会 海南科技产业互联网平台 深圳前海聚择互联网科技有限公司 昭通云南众福互联网科技有限公司 来此购互联网科技有限公司 互联网软件和科技 华夏互联网科技业 深圳市罗太互联网科技有限公司 玉溪新华互联网科技好不好 上海京穆互联网科技有限公司 互联网金融科技公司的优势 兰石爱特工业互联网科技分公司 科技互联网经济论坛 上海旺乐尼互联网科技有限公司 知域互联网科技有限公司官网 互联网高科技 上海挚品互联网科技有限公司 新华互联网科技学院 科技类互联网 天津摩尔互联网科技 科技赋能互联网健康 深圳市运趣互联网科技有限公司 央行互联网金融科技公司 保险科技服务互联网营销体系 互联网科技的前景
0