基于注解和反射的Java ORM框架(4)-数据库自动生成Java实体类

来源:互联网 发布:cron表达式生成器源码 编辑:程序博客网 时间:2024/04/30 15:47

Panda ORM作为最懒ORM框架之一(低调!),提供了直接从数据库表自动生成java实体类的功能。本篇介绍使用方法,十分之简单舒畅,后续在测试完毕后将提供Panda ORM的全部源代码(包括数据库自动生成Java实体类和添加注解后自动增删改查两部分功能的源码)。

一,导入jar包

需要导入两个,一个是pandaorm.jar,这个是Panda ORM的jar包,还有一个mysql-connector-java-5.1.39-bin.jar,是连接mysql数据库的驱动。如果是Web项目,直接放在WEB-INF/lib下即可。

二,编写配置文件

需要在src目录下新建config.properties配置文件,并配置如下七个参数。

前四个参数用于连接数据库,table_schema表示要产生数据表对应实体的数据库名,entity_package_name表示生成实体的包名,file_save_path表示保存实体java类的目录,注意目录要用\转义!

driver=com.mysql.jdbc.Driverurl=jdbc:mysql://127.0.0.1:3306/pandaormtest?useUnicode=true&characterEncoding=utf-8user=rootpassword=Pass1234table_schema=pandaormtestentity_package_name=panda.bank.entityfile_save_path=D:\\Java\\AutoEntity\\

第三步,调用 panda.orm.database.EntityGenerater类的静态方法自动生成实体类代码文件。

非常简单,新建一个Test类,代码如下:

public class Test {    public static void main(String[] args) {        panda.orm.database.EntityGenerater.generateClasses();    }}

运行之后,自动在file_save_path=D:\\Java\\AutoEntity\\目录下生成了两个java类文件user.java和role.java如下:数据库表结构如下图:
这里写图片描述

package panda.bank.entity;/*** Mon Mar 20 16:03:58 CST 2017* Panda ORM自动生成: user 实体类*/ public class User{    private String userId;    private String userPassword;    private String userName;    private String userRole;    public String getUserId(){        return userId;    }    public void setUserId(String userId){        this.userId=userId;    }    public String getUserPassword(){        return userPassword;    }    public void setUserPassword(String userPassword){        this.userPassword=userPassword;    }    public String getUserName(){        return userName;    }    public void setUserName(String userName){        this.userName=userName;    }    public String getUserRole(){        return userRole;    }    public void setUserRole(String userRole){        this.userRole=userRole;    }}package panda.bank.entity;/*** Mon Mar 20 16:03:58 CST 2017* Panda ORM自动生成: role 实体类*/ public class Role{    private String roleName;    private String roleId;    public String getRoleName(){        return roleName;    }    public void setRoleName(String roleName){        this.roleName=roleName;    }    public String getRoleId(){        return roleId;    }    public void setRoleId(String roleId){        this.roleId=roleId;    }}

OK ,这样其实就解决了很大一部分的代码量。

0 0