使用mybatis 连接Oracle 数据库 xml 文件中需要注意的问题

1:首先使用模糊查询的时候

1: 在mysql 中
 select <include refid="Base_Column_List" />
        FROM a_ll_dist_g_reas_record
        <where>
            <if test="null != orgName and '' != orgName">
                org_no like concat('%',#{orgName},'%')
            </if>
            <if test="null != pReasCode and '' != pReasCode">
                and orgName  like concat('%',#{orgName},'%')
            </if>
            <if test="null != reasCode and '' != reasCode">
                and reasCode  like concat('%',#{reasCode },'%')
            </if>
            <if test="null != timeFlag and '' != timeFlag">
                and timeFlag like concat('%',#{timeFlag },'%')
            </if>
            

2:使用Orcale的时候:   需要 多包一个  concat(concat)

 select <include refid="Base_Column_List" />
        FROM a_ll_dist_g_reas_record
        <where>
            <if test="null != orgName and '' != orgName">
                orgName like concat(concat('%',#{orgName}),'%')
            </if>
            <if test="null != pReasCode and '' != pReasCode">
                and pReasCode  like concat(concat('%',#{pReasCode }),'%')
            </if>
            <if test="null != reasCode and '' != reasCode">
                and reasCode like concat(concat('%',#{reasCode }),'%')
            </if>
            <if test="null != timeFlag and '' != timeFlag">
                and timeFlag like concat(concat('%',#{timeFlag }),'%')
            </if>
         

使用${} 

            <if test="parameter.indexName != null and parameter.indexName != ''">
                and INDEX_NAME like '%${parameter.indexName}%'
            </if>

时间范围: 将字符串类型的时间转换为date 类型

       <![CDATA[]]>  中的--> []  的写什么就是什么

           <![CDATA[
                and LOGIN_TIME >= to_date(#{startLoginTime},'yyyy-MM-dd')
            ]]>
            <![CDATA[
                and LOGIN_TIME <= to_date(#{endLoginTime},'yyyy-MM-dd')
            ]]>

3:使用Oracle 连接mybatis  时, 因为有一些业务场景规定,数据库中有一下字段,在前端为非必填字段  ,所以在插入数据的时候,会少携带一下参数,但是Oracle 数据库在使用mybatis  的时候,不允许插入数据为空,就会抛出报错信息。这时我们需要在sql 语句中添加 类型字段

例子如下:

  UPDATE a_ll_dist_g_reas_record
       set
           org_no = #{orgNo,jdbcType=VARCHAR},
           org_name = #{orgName,jdbcType=VARCHAR},
           time_flag = #{timeFlag,jdbcType=VARCHAR},
           rep_flag = #{repFlag,jdbcType=VARCHAR},
           p_reas_code = #{pReasCode,jdbcType=VARCHAR},
           reas_code = #{reasCode,jdbcType=VARCHAR},
           reas_desc = #{reasDesc,jdbcType=VARCHAR},
           rep_code = #{repCode,jdbcType=VARCHAR},
           oper_name = #{operName,jdbcType=VARCHAR}
        WHERE id = #{id}

4:在判断时间类型的时候 需要注意不要把时间字段判断  空字符串

           关于时间范围的搜索条件
           <if test="startTime != null">
                and create_time &gt;= #{startTime}
            </if>
            <if test="endTime != null">
                and create_time &lt;= #{endTime}
            </if>

           不要判断是否为空字符串
                <if test="null != createTime">
                    create_time,
                </if>

以下是一个示例,演示如何使用MyBatis连接Oracle数据库: 1. 首先,需要在项目添加MyBatisOracle JDBC驱动程序的依赖。例如,在Maven项目,可以在pom.xml文件添加以下依赖: ```xml <dependencies> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.6</version> </dependency> <dependency> <groupId>com.oracle.database.jdbc</groupId> <artifactId>ojdbc8</artifactId> <version>19.3.0.0</version> </dependency> </dependencies> ``` 2. 接下来,需要创建一个MyBatis配置文件。在该文件需要指定Oracle数据库连接信息,例如数据库URL、用户名和密码等。以下是一个示例配置文件: ```xml <?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> <environments default="development"> <environment id="development"> <transactionManager type="JDBC" /> <dataSource type="POOLED"> <property name="driver" value="oracle.jdbc.driver.OracleDriver" /> <property name="url" value="jdbc:oracle:thin:@localhost:1521:ORCL" /> <property name="username" value="myuser" /> <property name="password" value="mypassword" /> </dataSource> </environment> </environments> <mappers> <!-- 配置映射文件 --> </mappers> </configuration> ``` 在这个配置文件,指定了Oracle数据库的URL、用户名和密码。此外,还可以指定其他MyBatis配置选项,例如事务管理器类型和数据源类型等。 3. 创建一个Java类来表示数据库的表,例如: ```java public class User { private int id; private String name; private int age; // getters and setters } ``` 在这个示例,我们将使用该类来表示一个名为"users"的表。 4. 创建一个MyBatis映射文件来将Java对象映射到数据库。以下是一个示例映射文件: ```xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.example.UserMapper"> <resultMap id="userMap" type="com.example.User"> <id property="id" column="id" /> <result property="name" column="name" /> <result property="age" column="age" /> </resultMap> <select id="getUserById" resultMap="userMap"> SELECT id, name, age FROM users WHERE id = #{id} </select> </mapper> ``` 在这个映射文件,我们定义了一个名为"getUserById"的查询语句,该语句使用"#{id}"占位符来接收查询参数。此外,我们还定义了一个名为"userMap"的结果映射,该映射将查询结果映射到User对象。 5. 最后,创建一个Java类来执行查询。例如: ```java public class Main { public static void main(String[] args) { SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("mybatis-config.xml")); try (SqlSession session = sqlSessionFactory.openSession()) { UserMapper userMapper = session.getMapper(UserMapper.class); User user = userMapper.getUserById(1); System.out.println(user.getName()); } } } ``` 在这个示例,我们首先创建了一个SqlSessionFactory对象,该对象使用MyBatis配置文件来创建一个数据库连接。然后,我们使用SqlSession对象来获取一个UserMapper接口的实例,并使用该实例来执行查询。最后,我们将查询结果打印到控制台上。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大大怪~将军

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值