神通数据库+Springboot

国内数据库应用:申通数据库+Springboot

开放

现在,让我们实际使用代码进行操作,连接到数据库,看看它是否可以与其他数据库相同

首先,创建一个springboot项目,我们不会详细介绍如何创建它;

由于这是一个国内数据库,他有自己的驱动程序:com.oscar.driver

那么这个驱动程序所依赖的程序包是从哪里来的呢?目前,我们在Maven库中找不到它。我们只能在官方网站上提供的安装目录中找到它

引入

引入依赖程序包:

1.介绍OSCAR jar包

我们将放置oscarJDBC16。jar包在项目目录lib中,然后依赖Maven中的这个jar包

<依赖关系>

<groupId>com。oscarjdbc</groupId>

<artifactId>oscarJDBC16</artifactId>

<版本>1.0</版本>

<scope>系统</scope>

<systemiPath>${basedir}/src/main/lib/ocarJDBC16。jar</systemiPath>

</dependency>

2.介绍mybatis依赖包

由于我们仍在使用mybatis生成来快速创建数据库,因此我们需要具有以下依赖项

<依赖关系>

<groupId>组织。mys。生成器</groupId>

<artifactId>mybatis生成器核心</artifactId>

<版本>1.3.7</版本>

</dependency>

<依赖关系>

<groupId>组织。mys。春天启动</groupId>

<artifactId>mybatis春季启动程序</artifactId>

<版本>1.3.2</版本>

</dependency>

快速创建代码

在resources目录中创建generatorConfig.xml

<?XML版本=“1.0”编码=“UTF-8”

<!DOCTYPE生成器配置

PUBLIC“//mybatis.org//DTD mybatis Generator Configuration 1.0//EN”

“http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd“>

<generatorConfiguration>

<!-<ClassPathEntry location=“F:/cache/mysql连接器Java-5.1.28 bin.jar”/>-->

<context id=“testTables”targetRun time=“MyBatis3”>

<commentGenerator>

<property name=“suppressAllComments”value=“true”/>

</commentGenerator>

<jdbcConnection driverClass=“com.oscar.Driver”connectionURL=“jdbc:oscar://192.168.1.xx:2003/osrdb“UserId=”SYSDBA“password=”szoscar55“>

</jdbcConnection>

<JavaTypeResolver>

<property name=“forceBigDecimals”value=“false”/>

</JavaTypeResolver>

<JavaModelGenerator targetPackage=“com.student.modules.database.model”targetProject=“.\src\main\resources\mybatis”>

<property name=“enableSubPackages”value=“false”/>

<property name=“trimStrings”value=“true”/>

</JavaModelGenerator>

<sqlMapGenerator targetPackage=“com.student.modules.database.mapper”targetProject=“.\src\main\resources\mybatis”>

<property name=“enableSubPackages”value=“false”/>

</sqlMapGenerator>

<JavaClientGenerator type=“XMLMAPPER”targetPackage=“com.study.modules.database.dao”targetProject=“.\src\main\resources\mybatis”>

<property name=“enableSubPackages”value=“false”/>

</JavaClientGenerator>

<table tableName=“Auth USER”

EnableCountByExample=“false”

EnableUpdateByExample=“false”

EnableDeleteByExample=“false”

EnableSelectByExample=“false”

SelectByExampleQueryId=“false”

>

<property name=“useActualColumnNames”value=“true”/>

</table>

<table tableName=“testdb”

EnableCountByExample=“false”

EnableUpdateByExample=“false”

EnableDeleteByExample=“false”

EnableSelectByExample=“false”

SelectByExampleQueryId=“false”

>

<property name=“useActualColumnNames”value=“true”/>

</table>

</context>

</generatorConfiguration>

创建另一个测试类

包com.study;

导入org.mybatis。发电机api。MyBatisGenerator;

导入org.mybatis。发电机配置配置

导入org.mybatis。发电机配置XML。configurationParser;

导入org.mybatis。发电机内部的defaultShellCallback;

导入Java。io.文件;

导入Java。util。ArrayList;

导入Java。util。列表

公开课mybatisTest{

公共静态void generator()引发异常{

List<String>warnings=newArrayList<String>();

File configFile=新文件(“src/main/resources/generatorConfig.ml”);

配置分析器cp=新的配置分析器(警告);

配置配置=cp。parseConfiguration(configFile);

Default ShellCallback=new Default Shell回调(true);

MyBatisGenerator MyBatisGenerator=新的MyBatis生成器(配置、回调、警告);

MyBatisGenerator。generate(null);

}

公共静态void main(String[]args){

试试{

生成器();

系统出来println(“生成器已完成”);

}Catch(异常e){

e.PrintStackTrace();

}

}

}


请注意,在XML文件中,记得修改数据库连接地址

运行它并查看效果:

我们将把生成的文件复制到项目中

YML配置数据库连接

弹簧:

数据源:

URL:jdbc:oscar://192.168.1.61:2003/osrdb?servertimezone=utc&usessl=false

用户名:SYSDBA

密码:szoscar55

驱动程序类名:com.oscar.Driver

#用于mybatis

Mybatis:

映射器位置:classpath:com/study

<think>嗯,用户的问题是关于在使用SpringBoot、MyBatis-Plus和神通数据库时,如何配置返回字段统一转大写。我需要先理解这个问题的背景。不同数据库在处理字段名大小写上可能有不同的策略,比如有的可能返回大写,有的小写,或者保持原样。这会导致MyBatis-Plus在映射结果时出现问题,因为Java实体类的属性通常是驼峰命名,可能与数据库字段的大小写不匹配。 首先,用户提到的神通数据库,可能默认返回的字段名是大写还是小写呢?可能需要确认这一点。但不管怎样,用户希望统一转成大写,这样实体类的属性就能正确映射了。根据MyBatis-Plus的文档,可以使用配置类来设置结果集的自动映射规则。 我记得MyBatis有一个配置项是mapUnderscoreToCamelCase,它可以将下划线命名转换为驼峰命名,但这里的情况是大小写问题,而不是下划线。所以可能需要自定义一个ObjectWrapperFactory或者TypeHandler来处理字段名的大小写转换。 另外,MyBatis-Plus的配置可以通过MybatisConfiguration类来设置。这里可能需要设置ObjectWrapperFactory为自定义的类,将字段名统一转为大写。例如,创建一个继承自DefaultObjectWrapperFactory的类,重写getWrapperFor方法,返回一个自定义的MetaObject,在获取属性时进行转换。 同时,还需要在配置类中设置mapUnderscoreToCamelCase为false,避免原有的下划线转驼峰逻辑干扰。然后,在application.yml或配置类中配置MybatisPlus的Configuration,使用自定义的ObjectWrapperFactory。 另外,用户提到的引用中,引用[3]提到了@MapperScan注解,这可能需要在启动类上添加,确保Mapper被正确扫描。引用[4]提到了神通数据库,属于支持的数据库之一,所以配置方法应该适用。 可能的步骤是:1. 添加配置类,自定义ObjectWrapperFactory,将数据库字段名转为大写。2. 在配置中禁用mapUnderscoreToCamelCase。3. 测试查询结果是否映射正确。 需要注意的是,这种方法可能会影响所有查询结果,所以要确保实体类的属性名与数据库字段的大写形式一致,或者使用@TableField注解指定字段名。如果数据库字段本身是大小写混合的,这种方法可能会有问题,需要进一步处理。 总结下来,解决方案包括配置自定义的ObjectWrapperFactory,调整MyBatis-Plus的配置,以及可能的实体类注解调整。这样就能统一处理返回字段的大小写问题,确保正确映射到实体类。</think>### 解决方案:配置字段统一转大写 #### 1. 使用自定义`ObjectWrapperFactory`实现字段名转换 通过MyBatis的`ObjectWrapperFactory`接口,可以自定义字段名的映射规则。以下为将数据库字段名统一转为大写的配置示例: ```java public class UpperCaseObjectWrapperFactory extends DefaultObjectWrapperFactory { @Override public boolean hasWrapperFor(Object object) { return super.hasWrapperFor(object); } @Override public ObjectWrapper getWrapperFor(MetaObject metaObject, Object object) { return new UpperCaseFieldWrapper(metaObject, object); } } public class UpperCaseFieldWrapper extends BeanWrapper { public UpperCaseFieldWrapper(MetaObject metaObject, Object object) { super(metaObject, object); } @Override public String findProperty(String name, boolean useCamelCaseMapping) { return name.toUpperCase(); // 强制转为大写 } } ``` #### 2. 配置MyBatis-Plus全局设置 在SpringBoot配置类中注入自定义规则: ```java @Configuration public class MybatisPlusConfig { @Bean public ConfigurationCustomizer configurationCustomizer() { return configuration -> { configuration.setObjectWrapperFactory(new UpperCaseObjectWrapperFactory()); configuration.setMapUnderscoreToCamelCase(false); // 关闭默认驼峰转换[^2] }; } } ``` #### 3. 实体类字段映射处理 确保实体类属性名与数据库字段的大写形式匹配: ```java @Data @TableName("user_table") public class User { @TableField("ID") // 显式指定大写字段名 private Long id; private String username; // 对应数据库字段 USERNAME } ``` #### 4. 验证配置效果 执行查询后,MyBatis-Plus会将所有返回字段名转为大写,并与实体类属性自动匹配。例如: ```sql SELECT user_name FROM sys_user -- 返回字段会被识别为USER_NAME ``` ### 注意事项 - 如果数据库字段本身包含大小写混合(如`UserName`),此方法会统一转为`USERNAME`,需确保实体类属性与之对应 - 与`@TableField`注解配合使用时,注解值需与数据库实际字段名一致(可显式大写)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值