프로젝트에서 메타, 다오, 서비스 코드 중 상당수는 데이터베이스 테이블을 기반으로 작성해야 하는데, 그 중 상당수가 반복적이고 번거롭다. 따라서 템플릿 코드에 대한 생성기가 있다면 어느 정도 개발 효율성을 높일 수 있습니다.
Java 웹 프로젝트에서 Dao, Meta 및 서비스 레이어 템플릿 코드를 생성하도록 구성 가능한 생성기입니다.
mvn archetype:generate -DgroupId=com.zju -DartifactId=JavaWebCodeGenerator -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false -DarchetypeCatalog=internal
이 프로젝트는 Mybatis 생성기를 사용하여 코드를 생성하는 프로세스를 의미하며 구체적인 단계는 다음 5단계로 구분됩니다.
논리 단계
명령줄 구문 분석
데이터 테이블 정보 가져오기
구성 정보 생성
파일 생성
명령 구문 분석 클래스 ShellRunner
이 클래스는 명령줄 명령 구문 분석, 구성 파일 구문 분석 및 필수 항목 캡슐화를 담당합니다. 데이터를 코드 생성 클래스로 보냅니다.
분석 가능한 명령은 -config<a href="http://www.php.cn/wiki/1313.html" target="_blank">file<code>-config<a href="http://www.php.cn/wiki/1313.html" target="_blank">file</a>
입니다. : 구성 파일이 있는 경로를 지정하고 -overwrite
: 대상 파일을 다시 쓸지 여부를 지정합니다.
구성 파일의 구성 항목은 다음과 같습니다.
//Java SQL 驱动所在路径(暂未使用) private static final String CLASS_PATH_ENTRY = "class.path.entry"; //Java 驱动类型(暂未使用) private static final String DRIVER_CLASS = "driver.class"; //数据库地址 private static final String CONNECTION_URL = "connection.url"; //数据库用户名 private static final String USER_ID = "user.id"; //数据库密码 private static final String USER_PASSWORD = "user.password"; //模型生成地址 private static final String JAVA_MODEL_PACKAGE = "java.model.package"; //SQL生成地址 private static final String SQL_MAPPING_PACKAGE = "sql.mapping.package"; //项目地址 private static final String PROJECT = "project"; //数据表名 private static final String TABLE_NAME = "table.name"; //模型名称 private static final String DOMAIN_OBJECT_NAME = "domain.object.name";
코드 생성 클래스 CodeGenerator
이 클래스는 데이터베이스에 연결하고 데이터 테이블의 테이블 정보와 SQL 유형을 Java 유형에 매핑하고 필요한 데이터를 파일 생성 클래스에 캡슐화합니다.
Class.forName(configuration.getDriverClass()); //获取数据库连接 Connection connection = DriverManager.getConnection(configuration.getConnectionURL(), configuration.getUserId(), configuration.getPassword()); DatabaseMetaData databaseMetaData = connection.getMetaData(); //获取表结构信息 ResultSet rs = databaseMetaData.getColumns("", "", configuration.getTableName(), "%");
위의 코드를 통해 rs 변수에 대상 데이터 테이블의 테이블 정보를 가져왔습니다.
databaseMetaData.getColumns
메서드의 핵심은 SELECT * FROM information_schema.COLUMNS WHERE TABLE_NAME="tableName"
문을 실행하는 것입니다.
결과 집합에서 후속 처리에는 일반적으로 다음 테이블 정보 열이 필요합니다.
필드 | 설명 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
DATA_TYPE |
데이터 유형
|
||||||||||||||||
COLUMN_SIZE | 데이터 길이 | ||||||||||||||||
COLUMN_NANE | 열 이름 | ||||||||||||||||
null이 아닌 값이 허용되는지 여부 | |||||||||||||||||
DECIMAL_DIGITS | 십진수 | ||||||||||||||||
설명 | 설명 | ||||||||||||||||
COLUMN_DEF | 기본값 |
위 내용은 Java 웹 템플릿 코드 생성기의 설계 및 구현에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!