自己开发一个Java ORM框架(4)-数据库自动生成Java实体类

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


1. 导入jar包

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


2. 编写配置文件

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


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

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/pandaormtest?useUnicode=true&characterEncoding=utf-8
user=root
password=Pass1234
table_schema=pandaormtest
entity_package_name=panda.bank.entity
file_save_path=D:\\Java\\AutoEntity\\

3. 调用 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如下:数据库表结构如下图:

自己开发一个Java ORM框架(4)-数据库自动生成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 ,这样其实就解决了很大一部分的代码量。


上一篇:linux下c++开发环境安装(eclipse+cdt)


下一篇:用Python3、NetCore、Shell分别开发一个Ubuntu版的定时提醒(附NetCore跨平台两种发布方式)