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如下:数据库表结构如下图:
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 ,这样其实就解决了很大一部分的代码量。