JavaWeb的一些绝招,可以让开发更简单

文章介绍了JavaWeb开发中的一些实用技巧,如快速配置Sharding数据源分片,使用注解进行数据常量值和null值转换,金额数据转大写,以及ORM框架ORMBee的便捷功能,如多数据源配置,Javabean生成,避免硬编码等,旨在提高开发效率和代码质量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JavaWeb的一些绝招,可以让开发更简单

1. 快速配置数据源分片(Sharding)

Sharding分片的话, 只需要一句话,就可以完成分片. 有以下两种写法,与表名关系或与实现类关联.

数据源有ds0,ds1; test_user总共有6个表, ds0是test_user0,test_user1,test_user2,另外三个在ds1.分片键是id, 默认是根据id的值求余,余数的下标即可表的下标.

ShardingConfig.addShardingBean("test_user",new ShardingBean("ds[0..1].test_user[0..5]", "id"));
ShardingConfig.addShardingBean(TestMyUser.class,new ShardingBean("ds[0..1].test_my_user[0..5]", "id"));


原文链接:https://blog.youkuaiyun.com/abckingaa/article/details/129221516

2. 数据常量值转换

像 1->是, 0-> 否;  1->男, 0->女;

这种值的转换,该由前端来转换,还是后端转换?? 

前后端大家都不想做,  吵得不可开交.   最终到底谁来做呢??

有了这个神器, 后端的工程师们,你就大胆揽下这活吧.

在Javabean里,使用注解搞定:

	@Dict(map = "0=女,1=男",nullToValue="未知")
	private String sex;

3. null值转换

在Javabean看见过这种代码吗?

估计Javabean也不想当这个bean了.

	public String getFilePathName() {
		return filePathName == null ? "N/A" : filePathName;
	}

	public void setFilePathName(String filePathName) {
		this.filePathName = filePathName;
	}

	public String getOperator() {
		return operator == null ? "N/A" : operator;
	}

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

要是上100个字段,都是这种,那可惨了.  别想着用@getter, @setter自动生成了,  这种加了逻辑, 自动生成做不了.

还是用这个吧:

	@Dict(nullToValue="N/A")
	private String userid;

4. 金额数据转大写

		System.out.println(CnNum.tran(1234567.89));
		System.out.println(CnNum.tranToUpper(12.89));

一百万二十万三万四千五百六十七点八九
壹拾贰圆捌角玖分

引入 : org.teasoft.beex.util.CnNum; 即可.

5. 配置多数据源的三种方式(Spring boot + Bee)

https://blog.youkuaiyun.com/abckingaa/article/details/129221516

6. 生成Javabean

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

new GenBean().genAllBeanFile();  为所有表生成Javabean.  一行搞定

7. 根据Javabean生成表

要是已经有Javabean, 可由Javabean生成表.

Ddl.createTable(Orderhistory.class, false); //创建表,若是原来有表,则不覆盖

8.链式写法 查实体List.

BF.getSuid().select(new User().setUsername("张三").setPassword("abc"));

这种写法,是链式风格写法, 在此不作推荐.

这种写法,javabean要作对应调整

public class User {

	private Long id;
	private String username;
	private String password;

	public Long getId() {
		return id;
	}

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

	public String getUsername() {
		return username;
	}

	public User setUsername(String username) {
		this.username = username;
		return this;
	}

	public String getPassword() {
		return password;
	}

	public User setPassword(String password) {
		this.password = password;
		return this;
	}

}

9.解决硬编码

比如说查询Exam表里的name字段:

suidRichExt.select(new Exam(), "name"); 

有以下两种方式解决硬编码:

	   SuidRichExt suidRichExt=new ObjSQLRichExt();
	   suidRichExt.select(new Exam(), Exam::getName); //要求 jdk1.8+
	   
	   suidRich.select(new Exam(), Exam_F.name); //要定义一个静态的变量字段类Exam_F(可自动生成)

Exam_F是可以自动生成的 ,  自动命名规则 {Entity}_F,  可以自己定义前缀和后缀.

config.setGenFieldFile(true);   //生成字段文件, 这样可以避免硬编码引用字段,速度也比反射快.

--------------------------------------------------------------

ORM Bee Sharding 分库分表就是那么简单,对开发透明,不影响业务,简单易用,文件小,性能好支持 Mongodb支持 JDBC,还支持 Android 和 Harmony;可以同时使用多种不同类型的数据库

Bee,互联网新时代的 Java ORM 工具,更快、更简单、更自动,开发速度快,运行快,更智能

使用分库分表像使用单库一样方便,用户可无需关心分片实现;使用 MongoDB 像使用 MySQL 一样容易;

使用 DB 分片 (多节点) 像用单节点一样方便,对分库分表透明;

Hibernate/MyBatis + plus + Sharding-JDBC + jpa + Spring data +GraphQL = Bee


https://gitee.com/automvc/bee
https://github.com/automvc/bee

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值