Java使用ORM Bee自动生成Javabean.

Java使用ORM Bee自动生成Javabean.

配置数据库连接,添加了pom.xml依赖后,就可以写Java代码,自动生成Javabean了.

可参考:https://gitee.com/automvc/bee

https://github.com/automvc/bee

还可以生成字段文件, 这样可以避免硬编码引用字段,速度也比反射快.

package org.teasoft.exam.bee.osql.autogen;

import org.teasoft.bee.osql.BeeException;
import org.teasoft.honey.osql.autogen.GenBean;
import org.teasoft.honey.osql.autogen.GenConfig;

public class GenBeanSimple3 {
	public static void main(String[] args) {
		try {

			GenConfig config = new GenConfig();
			config.setGenToString(true);// 生成toString方法
			config.setGenComment(true); // 可生成注释
			config.setCommentPlace(1); // 注释的位置

			GenBean genBean = new GenBean(config);
			// 生成字段文件, 这样可以避免硬编码引用字段,速度也比反射快.
			config.setGenFieldFile(true);
			config.setOverride(true); // 是否覆盖原来的文件
			config.setUpperFieldNameInFieldFile(true);

			genBean.genSomeBeanFile("exam");

			// it is easy way. 最简单的用法,所有的都用默认配置.
//			new GenBean().genSomeBeanFile("orderhistory");

		} catch (BeeException e) {
			e.printStackTrace();
		}
	}
}

DB:

生成的Javabean:

package entity;

import java.io.Serializable;

/**
 * @author Honey
 * Create on 2024-12-13 23:20:08
 */
public class Exam implements Serializable {

	private static final long serialVersionUID = 1590598107298L;

	private Long id;
	private Long userid;
	private String lastName;
	private String firstName;
	private String birthDate;
	private String sex;
	private Long groupId;
	private String groupName;
	private String checkDate;
	private String checkTime;
	private String operator;
	private String updatetime;
	private String checkData;

	public Long getId() {
		return id;
	}

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

	public Long getUserid() {
		return userid;
	}

	public void setUserid(Long userid) {
		this.userid = userid;
	}

	public String getLastName() {
		return lastName;
	}

	public void setLastName(String lastName) {
		this.lastName = lastName;
	}

	public String getFirstName() {
		return firstName;
	}

	public void setFirstName(String firstName) {
		this.firstName = firstName;
	}

	public String getBirthDate() {
		return birthDate;
	}

	public void setBirthDate(String birthDate) {
		this.birthDate = birthDate;
	}

	public String getSex() {
		return sex;
	}

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

	public Long getGroupId() {
		return groupId;
	}

	public void setGroupId(Long groupId) {
		this.groupId = groupId;
	}

	public String getGroupName() {
		return groupName;
	}

	public void setGroupName(String groupName) {
		this.groupName = groupName;
	}

	public String getCheckDate() {
		return checkDate;
	}

	public void setCheckDate(String checkDate) {
		this.checkDate = checkDate;
	}

	public String getCheckTime() {
		return checkTime;
	}

	public void setCheckTime(String checkTime) {
		this.checkTime = checkTime;
	}

	public String getOperator() {
		return operator;
	}

	public void setOperator(String operator) {
		this.operator = operator;
	}

	public String getUpdatetime() {
		return updatetime;
	}

	public void setUpdatetime(String updatetime) {
		this.updatetime = updatetime;
	}

	public String getCheckData() {
		return checkData;
	}

	public void setCheckData(String checkData) {
		this.checkData = checkData;
	}

	public String toString() {
		StringBuilder str = new StringBuilder();
		str.append("Exam[");
		str.append("id=").append(id);
		str.append(",userid=").append(userid);
		str.append(",lastName=").append(lastName);
		str.append(",firstName=").append(firstName);
		str.append(",birthDate=").append(birthDate);
		str.append(",sex=").append(sex);
		str.append(",groupId=").append(groupId);
		str.append(",groupName=").append(groupName);
		str.append(",checkDate=").append(checkDate);
		str.append(",checkTime=").append(checkTime);
		str.append(",operator=").append(operator);
		str.append(",updatetime=").append(updatetime);
		str.append(",checkData=").append(checkData);
		str.append("]");
		return str.toString();
	}
}

生成字段文件

config.setUpperFieldNameInFieldFile(true);   //属性名用大写.

package entity.field;

/**
 * Relative field name for Javabean Exam
 * @author Honey
 * Create on 2024-12-13 22:30:39
 */
public interface Exam_F {

	String ID = "id";

	String USERID = "userid";

	String LAST_NAME = "lastName";

	String FIRST_NAME = "firstName";

	String BIRTH_DATE = "birthDate";

	String SEX = "sex";

	String GROUP_ID = "groupId";

	String GROUP_NAME = "groupName";

	String CHECK_DATE = "checkDate";

	String CHECK_TIME = "checkTime";

	String OPERATOR = "operator";

	String UPDATETIME = "updatetime";

	String CHECK_DATA = "checkData";

	String ENTITY_NAME = "Exam";
	String TABLE_NAME = "exam";
	String ALL_NAMES = "id,userid,lastName,firstName,birthDate,sex,groupId,groupName,checkDate,checkTime,operator,updatetime,checkData";
}

另外一种风格.   属性名和字符串是一样的.  用一样就好了,可必让自己那么累,同时看两种风格的命名呢,达到去硬编码的目的就好.

package entity.field;

/**
 * Relative field name for Javabean Exam
 * @author Honey
 * Create on 2024-12-13 22:28:20
 */
public interface Exam_F {

	String id = "id";

	String userid = "userid";

	String lastName = "lastName";

	String firstName = "firstName";

	String birthDate = "birthDate";

	String sex = "sex";

	String groupId = "groupId";

	String groupName = "groupName";

	String checkDate = "checkDate";

	String checkTime = "checkTime";

	String operator = "operator";

	String updatetime = "updatetime";

	String checkData = "checkData";

	String ENTITY_NAME = "Exam";
	String TABLE_NAME = "exam";
	String ALL_NAMES = "id,userid,lastName,firstName,birthDate,sex,groupId,groupName,checkDate,checkTime,operator,updatetime,checkData";
}

### Java 或 Python 中 ORM Bee 的相关介绍 #### 关于 ORM Bee 框架 ORM (Object-Relational Mapping) 是一种编程技术,用于将对象模型转换为关系型数据库中的表结构。ORM Bee 是一个轻量级的 ORM 工具,支持多种编程语言,其中包括 Python 和 Java。 对于 **Python** 而言,ORM Bee 提供了一种简单的方式来操作数据库。通过 `select_first` 方法可以仅获取查询结果的第一条记录[^1]。当我们将一个名为 `orders` 的对象传递给 ORM Bee 时,框架会自动解析该对象,并执行相应的 SQL 查询来从数据库中提取数据。 以下是使用 Python 版本的 ORM Bee 进行基本查询的一个例子: ```python from orm_bee import OrmBee, Model, Field class Order(Model): id = Field(primary_key=True) name = Field() price = Field() orm = OrmBee(database_url="sqlite:///example.db") # 获取第一个订单记录 first_order = orm.select_first(Order) if first_order: print(f"First order: {first_order.name}, Price: {first_order.price}") else: print("No orders found.") ``` 这段代码定义了一个简单的 `Order` 模型类,并利用 ORM Bee 来连接 SQLite 数据库以及检索第一条订单记录。 至于 **Java** 方面的信息较少提及具体实现细节,但通常情况下,Java 社区更倾向于 Hibernate、JPA 等成熟的 ORM 解决方案。如果存在针对 JavaORM Bee 实现,则其功能应类似于上述描述的 Python 库——即提供简化版的数据访问接口以减少手动编写 SQL 的需求。 需要注意的是,在某些场景下可能还需要处理异常情况。例如在 Python 中可以通过 `try-except` 块捕获错误或者直接抛出特定类型的异常以便调用者能够适当地响应失败状况[^2]。下面展示如何结合 raise 抛出自定义异常的例子: ```python def get_order_by_id(order_id): try: order = orm.get(Order, {'id': order_id}) if not order: raise ValueError(f"No order with ID={order_id} exists.") return order except Exception as e: print(e) return None ``` 此函数尝试依据指定ID查找对应订单实例; 如果找不到匹配项则触发ValueError告知使用者请求参数有误. --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值