oracle表结构

create table T_USERS

(

ID NUMBER not null,

NAME VARCHAR2(30),

SEX VARCHAR2(3),

BIRS DATE,

MESSAGE CLOB

)

create sequence SEQ_T_USERS_ID

minvalue 1

maxvalue 99999999

start with 1

increment by 1

cache 20;

配置mybatis配置文件UsersMapper.xml

t_users

id,name,sex,birs,message

where 1=1

and id = #{id}

and name like concat(concat('%', '${name}'), '%')

and sex like concat(concat('%', '${sex}'), '%')

and birs = #{birs}

and message = #{message}

select seq_t_users_id.nextval as id from dual

insert into t_users(id,name,sex,birs,message) values(#{id},#{name},#{sex},#{birs},#{message,jdbcType=CLOB})

update t_users set name=#{name},sex=#{sex},birs=#{birs},message=#{message} where id=#{id}

update t_users set

name=#{name},

sex=#{sex},

birs=#{birs},

message=#{message}, where id=#{id}

delete from t_users where id = #{id}

select

from t_users where id = #{id}

select

from t_users

select count(1) from t_users

select

from t_users

Mapper类接口

package examples.mapper;

import java.util.List;

public interface UsersMapper{

public void add(T t);

public void update(T t);

public void updateBySelective(T t);

public void delete(Object id);

public T queryById(Object id);

public ListqueryBySelective(T t);

public int queryByCount(T t);

public ListqueryByList(T t);

}

类型转换工具类

package examples.service;

import java.sql.CallableStatement;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

import oracle.sql.CLOB;

import org.apache.ibatis.type.JdbcType;

import org.apache.ibatis.type.TypeHandler;

public class OracleClobTypeHandler implements TypeHandler{

public Object valueOf(String param) {

return null;

}

@Override

public Object getResult(ResultSet arg0, String arg1) throws SQLException {

CLOB clob = (CLOB) arg0.getClob(arg1);

return (clob == null || clob.length() == 0) ? null : clob.getSubString((long) 1, (int) clob.length());

}

@Override

public Object getResult(ResultSet arg0, int arg1) throws SQLException {

return null;

}

@Override

public Object getResult(CallableStatement arg0, int arg1) throws SQLException {

return null;

}

@Override

public void setParameter(PreparedStatement arg0, int arg1, Object arg2, JdbcType arg3) throws SQLException {

CLOB clob = CLOB.empty_lob();

clob.setString(1, (String) arg2);

arg0.setClob(arg1, clob);

}

}

Spring配置文件

oracle.jdbc.driver.OracleDriver

jdbc:oracle:thin:@127.0.0.1:1521:pms

pms

pms

classpath:examples/mybatis/oracle/UsersMapper.xml

测试类

package examples.service;

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.List;

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;

import examples.bean.Users;

import examples.mapper.UsersMapper;

public class TestUsersService {

@SuppressWarnings("unchecked")

public static void main(String[] args) throws ParseException {

ApplicationContext ac =

new ClassPathXmlApplicationContext("classpath:/examples/service/spring.xml");

UsersMapperdao = (UsersMapper)ac.getBean("dao");

//删除表中所有信息

Users nullBean = new Users();

ListdelList = dao.queryByList(nullBean);

if(delList != null) {

for(Users user : delList) {

dao.delete(user.getId());

}

}

//新增

Users bean = new Users();

bean.setName("ding");

bean.setSex("男");

bean.setBirs(new SimpleDateFormat("yyyy-MM-dd").parse("1985-01-01"));

bean.setMessage("This is Clob!");

dao.add(bean);

Listlist = dao.queryByList(nullBean);

if(list != null) {

for(Users user : list) {

System.out.println(user);

}

}

//查询并更新

bean = new Users();

bean.setName("ding");

ListqueList = dao.queryByList(bean);

if(queList != null) {

for(Users user : list) {

user.setSex("女");

dao.updateBySelective(user);

}

}

list = dao.queryByList(nullBean);

if(list != null) {

for(Users user : list) {

System.out.println(user);

}

}

//查询并更新

bean = new Users();

bean.setName("ding");

ListqueList2 = dao.queryByList(bean);

if(queList != null) {

for(Users user : queList2) {

user.setSex("男");

user.setMessage("");

dao.update(user);

}

}

list = dao.queryByList(nullBean);

if(list != null) {

for(Users user : list) {

System.out.println(user);

}

}

int num = dao.queryByCount(nullBean);

System.out.println("num=" + num);

}

}

oracle是CLOB类型mybatis,Mybatis之Oracle增删查改示例(含Date、Clob数据类型操作)相关推荐

  1. MyBatis实现数据的增删查改

    MyBatis的配置请参考我的上一篇文章,在上一篇文章的基础上我们实现数据的增删查改. 创建实现增删查改的xml文件,这里才是真正实现增删查改的文件. 创建完后要在配置文件中注册创建好的xml文件: ...

  2. Mybatis基于注解实现增删查改和多参数列表查询

    林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 在[Mybatis]Mybatis入门概述及第一个Mybatis实例实现增删改查 和[Myba ...

  3. Mybatis之Oracle增删查改示例--转

    http://blog.csdn.net/bingjie1217/article/details/21088431?utm_source=tuicool&utm_medium=referral ...

  4. (4) hibernate增删查改+批量操作+类似Mybatis动态sql

    简介 采用spring + hibernate + freemaker+ maven搭建起来的一个hibernate增删查改和 类似mybatis动态sql查询的一个案例 增删查改demo + 动态s ...

  5. mybatis 介绍 入门 mapper配置文件 增删查改 别名配置 #和 $的区别

    mybatis 介绍 今天,一起来说说mybits这个框架吧.这是一个持久层的框架.之前叫做ibatis. 所以,在它的代码中出现ibatis这个词的时候,不要感到惊讶.不是写错了,它确实就是这个样子 ...

  6. Mybatis、SpringBoot入门实战(微型项目) -- Mysql增删查改、写接口、测试接口

    Mybatis入门实战(微型项目) – Mysql增删查改.写接口.测试接口 开发环境: 1.Window10 v1909 2.idea 2019 3.jdk 1.8 4.mybatis 3.5.5 ...

  7. oracle存储过程之数据增删查改及调用

    本文转载自:https://blog.csdn.net/u011955534/article/details/14647217 原文更易读,请参与原文. 存储过程: 存储过程是 SQL, PL/SQL ...

  8. server sql 中类型为bit应该插入什么值_关于SQL Server中bit类型字段增删查改的一些事...

    前言 本文主要给大家介绍了关于SQL Server中bit类型字段增删查改的一些事,话说BIT类型字段之前,先看"诡异"的一幕,执行Update成功,但是查询出来的结果依然是1,而 ...

  9. Mybatis(一)——【快速入门、增删查改操作、核心配置文件描述及API】

    目录 原始JDBC操作 Mybatis简介 Mybatis开发步骤: Mybatis的映射文件概述 Mybatis的增删改查操作 MyBatis的核心配置文件概述 MyBatis核心配置文件层级关系 ...

最新文章

  1. Asp.net core 学习笔记 ( Web Api )
  2. 一定是h的方式不对阅读_大连二手QH69系列H型钢抛丸机厂商_深蓝永盛二手抛丸机...
  3. express中get和post的区别
  4. 【ST表】栈(jzoj 2295)
  5. kotlin 覆盖属性_Kotlin程序| 方法覆盖的示例
  6. multipartfile获取数据_详解SpringMVC使用MultipartFile实现文件的上传
  7. 读懂才会用 : 瞅瞅Redis的epoll模型
  8. codesys的设备树重点详解
  9. CentOS 7 忘记root密码重置密码
  10. Win 10 下无法安装.net framework 3.5,错误代码0x800F081F的解决方案
  11. matlab cftool光滑曲线导出为什么就不光滑了_不会吧,还有人不知道MATLAB这8个小技巧?...
  12. 有关java多态性的介绍
  13. js实现点击隐藏图片
  14. 如何利用等比频宽公式将信号分解成部分重叠的子频段
  15. BruteXSS:XSS暴力破解神器
  16. pygame库和pgzero库
  17. IOS APP更新问题
  18. 在同一台电脑上使用内网和外网
  19. AutoCAD 的托管程序集
  20. 你不得不关注的5 大Android 开发技术——2020

热门文章

  1. python replace函数后面的数字的含义
  2. maven配置报错以及The JAVA_HOME environment variable is not defined correctly的解决方法
  3. 优达学城深度学习之三(上)——卷积神经网络
  4. Python面向对象编程三大特性之多态
  5. WORD如何关闭标题段落分页功能?
  6. 小程序日历插件的使用
  7. mongodb更新操作符$rename
  8. mysql执行sql流程_MySQL架构与SQL执行流程
  9. linux python 环境 png,在mint-15 linux上显示python的.png图像
  10. linux open函数使用,linux中open函数使用