人大金仓kingbase使用Mybatis

近期在学习使用kingbase,在使用mybatis的时候遇到了困难,经过了一段时间研究解决了问题。

直接上Mybatis配置文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <typeAliases>
        <package name="com.jyc.pojo"/>
    </typeAliases>

    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.kingbase8.Driver"/>
                <property name="url" value="jdbc:kingbase8://127.0.0.1:54321/JYC"/>
                <property name="username" value="SYSTEM"/>
                <property name="password" value="123456"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <!--扫描mapper-->
        <package name="com.jyc.dao"/>
    </mappers>
</configuration>

驱动问题可以通过自定义配置Maven坐标,(我用的Maven,当时的配置代码没有保存,可以自行搜索配置一下,下面给出kingbase8的驱动jar包)

链接:https://pan.baidu.com/s/1A2kLnlIrsPD7xthTcGBeMA 提取码:hj9p

<dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.5.5</version>
    </dependency>
    <dependency>
      <groupId>kingbase</groupId>
      <artifactId>kingbase8</artifactId>
      <version>8</version>
    </dependency>
  </dependencies>

在kingbase的SQL语句的书写表名上要使用模式名.表名,否则会报错误500,找不到字段。具体例子如下

public interface UserMapper {

    //根据用户名和密码查询用户对象
    @Select("select * from PUBLIC.USER where USERNAME=#{username} and PASSWORD=#{password}")
    User select(@Param("username") String username,@Param("password") String password);


    //根据用户名查询用户对象
    @Select("select * from PUBLIC.USER where USERNAME = #{username}")
    User selectByUSERNAME(String username);

    //添加注册的用户
    @Insert("insert into PUBLIC.USER values(null,#{username},#{password})")
    void add(User user);

    //添加输入进来的数据
    @Insert("insert into PUBLIC.STUDENT values(#{sno},#{sname},#{ssex},#{sage},#{sdept})")
    void adddata(Student student);

    //删除数据
    @Delete("delete from PUBLIC.STUDENT where SNO = #{sno}")
    void deleteBySno(@Param("sno") String sno);
}
经验分享 程序员 微信小程序 职场和发展