SQL语句生成表结构对应的javabean及mybatis的resultMap

命令行连接MySQL数据库

mysql --default-character-set=[编码] -h [IP] -P[端口(没有空格)]  -u [用户名] -D [数据库名] -p[密码(没有空格)]
例如

mysql --default-character-set=utf8 -h 127.0.0.1 -P3306  -u root -D test -proot

使用SQL将数据库中的表结构转成Java中的实体类,附带生成注释,属性首字母小写。

SELECT 
  CONCAT(
    '/**',column_comment,'*/','private ',
    CASE
      data_type 
      WHEN 'varchar' 
      THEN 'String' 
      WHEN 'int' 
      THEN 'Integer' 
      WHEN 'decimal' 
      THEN 'BigDecimal' 
      WHEN 'datetime' 
      THEN 'Date' 
      WHEN 'longtext' 
      THEN 'String' 
    END,
    ' ',
    LOWER(LEFT(column_name,1)) ,RIGHT(column_name,LENGTH(column_name)-1),
    '; '
    
  ) '' 
FROM
  information_schema.`COLUMNS` 
WHERE TABLE_NAME = 'tb_regioncoord' 
ORDER BY ordinal_position ;
查询结果类似下边这样:

/**备注*/private Integer field1; 
/**备注*/private Integer field2; 
/**备注*/private String field3; 
/**备注*/private String field4; 

在IDE中将结果格式化再生成相应的get、set方法就可以了。
将数据库表结构转为mybatis中的resultMap

SELECT CONCAT('<result column="',LOWER(LEFT(column_name,1)) ,RIGHT(column_name,LENGTH(column_name)-1),'" jdbcType="',
CASE data_type WHEN 'int' THEN 'INTEGER' WHEN 'decimal' THEN 'DECIMAL' WHEN 'varchar' THEN 'VARCHAR' WHEN 'longtext' THEN 'VARCHAR' WHEN 'datetime' THEN 'TIMESTAMP' ELSE data_type END,'" property="',
LOWER(LEFT(column_name,1)) ,RIGHT(column_name,LENGTH(column_name)-1),'"   javaType="',CASE
      data_type 
      WHEN 'varchar' 
      THEN 'String' 
      WHEN 'int' 
      THEN 'Integer' 
      WHEN 'decimal' 
      THEN 'BigDecimal' 
      WHEN 'datetime' 
      THEN 'java.util.Date' 
      WHEN 'longtext' 
      THEN 'String' 
    END,'" />') '' FROM information_schema.`COLUMNS` 
WHERE TABLE_NAME = 'tb_ad' 
ORDER BY ordinal_position ;
生成的结果如下:
<result column="field1" jdbcType="INTEGER" property="field1"   javaType="Integer" />
<result column="field2" jdbcType="INTEGER" property="field2"   javaType="Integer" />
<result column="field3" jdbcType="VARCHAR" property="field3"   javaType="String" />
<result column="field4" jdbcType="VARCHAR" property="field4"   javaType="String" />
以上两个SQL可以省去一些重复的工作量,也能减少一些不必要的错误。

最后要说明的就是以上这两个方法只是初级方法,mybatis的dao、mapper、xml文件都是可以自动生成的,具体实现可以自行搜索 Mybatis-Generator


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值