oracle是CLOB类型mybatis,Mybatis之Oracle增删查改示例(含Date、Clob数据类型操作)
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数据类型操作)相关推荐
- MyBatis实现数据的增删查改
MyBatis的配置请参考我的上一篇文章,在上一篇文章的基础上我们实现数据的增删查改. 创建实现增删查改的xml文件,这里才是真正实现增删查改的文件. 创建完后要在配置文件中注册创建好的xml文件: ...
- Mybatis基于注解实现增删查改和多参数列表查询
林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 在[Mybatis]Mybatis入门概述及第一个Mybatis实例实现增删改查 和[Myba ...
- Mybatis之Oracle增删查改示例--转
http://blog.csdn.net/bingjie1217/article/details/21088431?utm_source=tuicool&utm_medium=referral ...
- (4) hibernate增删查改+批量操作+类似Mybatis动态sql
简介 采用spring + hibernate + freemaker+ maven搭建起来的一个hibernate增删查改和 类似mybatis动态sql查询的一个案例 增删查改demo + 动态s ...
- mybatis 介绍 入门 mapper配置文件 增删查改 别名配置 #和 $的区别
mybatis 介绍 今天,一起来说说mybits这个框架吧.这是一个持久层的框架.之前叫做ibatis. 所以,在它的代码中出现ibatis这个词的时候,不要感到惊讶.不是写错了,它确实就是这个样子 ...
- Mybatis、SpringBoot入门实战(微型项目) -- Mysql增删查改、写接口、测试接口
Mybatis入门实战(微型项目) – Mysql增删查改.写接口.测试接口 开发环境: 1.Window10 v1909 2.idea 2019 3.jdk 1.8 4.mybatis 3.5.5 ...
- oracle存储过程之数据增删查改及调用
本文转载自:https://blog.csdn.net/u011955534/article/details/14647217 原文更易读,请参与原文. 存储过程: 存储过程是 SQL, PL/SQL ...
- server sql 中类型为bit应该插入什么值_关于SQL Server中bit类型字段增删查改的一些事...
前言 本文主要给大家介绍了关于SQL Server中bit类型字段增删查改的一些事,话说BIT类型字段之前,先看"诡异"的一幕,执行Update成功,但是查询出来的结果依然是1,而 ...
- Mybatis(一)——【快速入门、增删查改操作、核心配置文件描述及API】
目录 原始JDBC操作 Mybatis简介 Mybatis开发步骤: Mybatis的映射文件概述 Mybatis的增删改查操作 MyBatis的核心配置文件概述 MyBatis核心配置文件层级关系 ...
最新文章
- Asp.net core 学习笔记 ( Web Api )
- 一定是h的方式不对阅读_大连二手QH69系列H型钢抛丸机厂商_深蓝永盛二手抛丸机...
- express中get和post的区别
- 【ST表】栈(jzoj 2295)
- kotlin 覆盖属性_Kotlin程序| 方法覆盖的示例
- multipartfile获取数据_详解SpringMVC使用MultipartFile实现文件的上传
- 读懂才会用 : 瞅瞅Redis的epoll模型
- codesys的设备树重点详解
- CentOS 7 忘记root密码重置密码
- Win 10 下无法安装.net framework 3.5,错误代码0x800F081F的解决方案
- matlab cftool光滑曲线导出为什么就不光滑了_不会吧,还有人不知道MATLAB这8个小技巧?...
- 有关java多态性的介绍
- js实现点击隐藏图片
- 如何利用等比频宽公式将信号分解成部分重叠的子频段
- BruteXSS:XSS暴力破解神器
- pygame库和pgzero库
- IOS APP更新问题
- 在同一台电脑上使用内网和外网
- AutoCAD 的托管程序集
- 你不得不关注的5 大Android 开发技术——2020
热门文章
- python replace函数后面的数字的含义
- maven配置报错以及The JAVA_HOME environment variable is not defined correctly的解决方法
- 优达学城深度学习之三(上)——卷积神经网络
- Python面向对象编程三大特性之多态
- WORD如何关闭标题段落分页功能?
- 小程序日历插件的使用
- mongodb更新操作符$rename
- mysql执行sql流程_MySQL架构与SQL执行流程
- linux python 环境 png,在mint-15 linux上显示python的.png图像
- linux open函数使用,linux中open函数使用