mybatis 创建实体类

本文解决使用MyBatis Generator时遇到的空异常问题,通过检查配置文件mybatis-generator.xml,发现缺少DTD文件引入导致的问题,并提供了解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

创建了一个简单的例子但是 总是报空异常 代码如下

mybatis-generator .xml的配置

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration SYSTEM
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd" >
<generatorConfiguration>

<!-- 配置jdbc驱动包的路径 -->
<!-- <classPathEntry location="F:\WorkSpace\javaEE\mybatis2\WebContent\WEB-INF\lib\sqljdbc4.jar"/> -->
<classPathEntry location=".lib/sqljdbc4.jar"/>
<context id="account_table" targetRuntime="MyBatis3">

<!-- 配置注释 -->
<commentGenerator>
<!-- 是否去除所有自动生成的注释文件 -->
<property name="suppressAllComments" value="true"/>
<!-- 是否去除所有自动生成的文件的时间戳,默认为false -->
<property name="suppressDate" value="true"/>
</commentGenerator>

<jdbcConnection
connectionURL="jdbc:sqlserver://localhost:1433;databaseName=mybank"
driverClass="com.microsoft.sqlserver.jdbc.SQLServerDriver"
userId="sa"
password="zxcv1234"
/>


<javaTypeResolver>
<!-- 把jdbc中的decimal与numberic类型转化为integer类型 -->
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>

<!-- 数据表对应的Model层 -->
<javaModelGenerator targetPackage="com.my.pojo" targetProject="src">
<property name="enableSubPackages" value="true"/>
<property name="trimStrings" value="true"/>
</javaModelGenerator>

<!-- sql mapper 映射配置 -->
<sqlMapGenerator targetPackage="com.my.mapper" targetProject="src">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>

<!-- mapper 接口 -->
<javaClientGenerator targetPackage="com.my.inter" type="XMLMAPPER" targetProject="src">
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>


<!-- 要对那些数据表操作 -->
<!-- schema你的数据库,tableName表明,domainObjectName对应你的javabean类名,是否生成相应的example -->
<table tableName="account" schema="mybatis_db" domainObjectName="Account"

enableCountByExample="false" enableDeleteByExample="false"
enableSelectByExample="false" enableUpdateByExample="false"
selectByExampleQueryId="false"
/>
</context>
</generatorConfiguration>

 

测试实现类 GenMain

package com.my.test;

import java.io.File;
import java.io.IOException;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import org.junit.Test;
import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.exception.InvalidConfigurationException;
import org.mybatis.generator.exception.XMLParserException;
import org.mybatis.generator.internal.DefaultShellCallback;

public class GenTest {
@Test
public static void main(String[] args) {


List<String> warnings=new ArrayList<String>();
boolean overwrite=true;
String genCfg="/mbg_config.xml";
File configFile=new File(GenTest.class.getResource(genCfg).getFile());

ConfigurationParser cp = new ConfigurationParser(warnings);
Configuration config = null;
try {
config = cp.parseConfiguration(configFile);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (XMLParserException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
DefaultShellCallback callback = new DefaultShellCallback(overwrite);
try {
MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
myBatisGenerator.generate(null);
} catch (InvalidConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

System.out.println("生成Mybatis配置成功!");

}

}

 

还没有改好 先写到这里 9.18 15:03

 

 

9.19 1:05

找到原因 导入的generator-config_1_0.dtd文件错误 少了一行代码 找的好辛苦啊 我是从xml直接导入的dtd文件 看来以后导入此类文件还是从 官方的拷贝过来的好些

dtd 如下:

<!DOCTYPE generatorConfiguration
  PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
  "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"> 

 

转载于:https://www.cnblogs.com/tenney/p/3976948.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值