org.apache.ibatis.type.JdbcType 是 MyBatis 框架中的一个枚举类型,用于表示 JDBC 定义的 SQL 类型

MyBatis框架中的org.apache.ibatis.type.JdbcType枚举用于表示JDBC定义的SQL类型,如VARCHAR, INTEGER等。在映射文件或注解中指定参数或结果集的JDBC类型有助于与JDBC交互。虽然MyBatis 3.4.2及以后版本可自动推断jdbcType,但在特定情况下,如数据库列类型与Java类型不匹配时,仍需显式指定。" 125776905,8287093,深入理解C# WPF:特点、优势与开发工具,"['前端开发', 'wpf框架', 'C#开发', '桌面应用', 'UI设计']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

org.apache.ibatis.type.JdbcType 是 MyBatis 框架中的一个枚举类型,用于表示 JDBC 定义的 SQL 类型。MyBatis 使用这些类型来与 JDBC 交互,特别是在处理参数和结果集时。

JdbcType 枚举中定义了一系列标准的 JDBC 类型,例如:

JdbcType.VARCHAR
JdbcType.INTEGER
JdbcType.DECIMAL
JdbcType.DATE
JdbcType.TIMESTAMP
…(以及其他多种类型)
当你在 MyBatis 的映射文件(XML 文件)或注解中指定参数或结果集的 JDBC 类型时,你会使用这些 JdbcType 枚举值。

例如,在 MyBatis 的映射文件中,你可能会看到这样的代码片段:

xml

SELECT * FROM PERSON WHERE ID = #{id, jdbcType=INTEGER}

在上面的例子中,我们指定了 #{id} 参数的 JDBC 类型为 INTEGER。虽然 MyBatis 通常能够自动检测参数的类型,但在某些情况下,明确指定类型可能是有益的或必要的。

注意:从 MyBatis 3.4.2 开始,对于大多数情况,你不再需要显式地指定 jdbcType,因为 MyBatis 可以通过 Java 类型的元数据自动推断出正确的 jdbcType。然而,在某些情况下(例如,当数据库列的类型与 Java 类型的标准映射不完全匹配时),显式指定 jdbcType 可能是必要的。

  • MyBatis 通过包含的jdbcType类型
    BIT FLOAT CHAR TIMESTAMP OTHER UNDEFINED
    TINYINT REAL VARCHAR BINARY BLOB NVARCHAR
    SMALLINT DOUBLE LONGVARCHAR VARBINARY CLOB NCHAR
    INTEGER NUMERIC DATE LONGVARBINARY BOOLEAN NCLOB
    BIGINT DECIMAL TIME NULL CURSOR

  • Mybatis中javaType和jdbcType对应关系

  • JDBC Type Java Type

  • CHAR String

  • VARCHAR String

  • LONGVARCHAR String

  • NUMERIC java.math.BigDecimal

  • DECIMAL java.math.BigDecimal

  • BIT boolean

  • BOOLEAN boolean

  • TINYINT byte

  • SMALLINT short

  • INTEGER int

  • BIGINT long

  • REAL float

  • FLOAT double

  • DOUBLE double

  • BINARY byte[]

  • VARBINARY byte[]

  • LONGVARBINARY byte[]

  • DATE java.sql.Date

  • TIME java.sql.Time

  • TIMESTAMP java.sql.Timestamp

  • CLOB Clob

  • BLOB Blob

  • ARRAY Array

  • DISTINCT mapping of underlying type

  • STRUCT Struct

  • REF Ref

  • DATALINK java.net.URL[color=red][/color]

package com.ssm.chapter5.enumeration;

public enum SexEnum {
   
	MALE(1, "男"),
	FEMALE(0, "女");

	private int id;
	private String name;

	public int getId() {
   
		return id;
	}

	public void setId(int id) {
   
		this.id = id;
	}

	public String getName() {
   
		return name;
	}

	public void setName(String name) {
   
		this.name = name;
	}

	SexEnum(int id, String name) {
   
		this.id = id;
		this.name = name;
	}

	public static SexEnum getSexById(int id) {
   
		for (SexEnum sex : SexEnum.values()) {
   
			if (sex.getId() == id) {
   
				return sex;
			}
		}
		return null;
	}
}
package com.ssm.chapter5.main;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.ibatis.session.SqlSession;
import org.apache.log4j.Logger;

import com.ssm.chapter5.mapper.EmployeeMapper;
import com.ssm.chapter5.mapper.PdRoleMapper;
import com.ssm.chapter5.mapper.RoleMapper;
import com.ssm.chapter5.mapper2.RoleMapper2;
import com.ssm.chapter5.mapper2.UserMapper2;
import com.ssm.chapter5.param.PageParams;
import com.ssm.chapter5.param.PdCountRoleParams;
import com.ssm.chapter5.param.PdFindRoleParams;
import com.ssm.chapter5.param.RoleParams;
import com.ssm.chapter5.pojo.Employee;
import com.ssm.chapter5.pojo.Role;
import com.ssm.chapter5.pojo2.Role2;
import com.ssm.chapter5.pojo2.User2;
import com.ssm.chapter5.utils.SqlSessionFactoryUtils;

public class Chapter5Main {
   
	
	
	
	public static void main(String[] args) {
   
//		testPdCountRole();
		testPdFindRole();
	}
	
	public static void testGetRole() {
   
		SqlSession sqlSession = null;
		try {
   
			sqlSession = SqlSessionFactoryUtils.openSqlSession();
			RoleMapper roleMapper = sqlSession.getMapper(RoleMapper.class);
			Role role = roleMapper.getRole(1L);
			System.out.println(role.getRoleName());
		} catch(Exception ex) {
   
			ex.printStackTrace();
		} finally {
   
			if (sqlSession != null) {
   
				sqlSession.close();
			}
		}
	}
	
	public static void testFindRolesByMap() {
   
		SqlSession sqlSession = null;
		try {
   
			sqlSession = SqlSessionFactoryUtils.openSqlSession();
			RoleMapper roleMapper = sqlSession.getMapper(RoleMapper.class);
			Map<String, Object> parameterMap = new HashMap<String, Object>();
			parameterMap.put("roleName", "1");
			parameterMap.put("note", "1");
			List<Role> roles = roleMapper.findRolesByMap(parameterMap);
			System.out.println(roles.size());
		} catch(Exception ex) {
   
			ex.printStackTrace();
		} finally {
   
			if (sqlSession != null) {
   
				sqlSession.close();
			}
		}
	}
	
	public static void testFindRolesByAnnotation() {
   
		SqlSession sqlSession = null;
		try {
   
			sqlSession = SqlSessionFactoryUtils.openSqlSession();
			RoleMapper roleMapper = sqlSession.getMapper(RoleMapper.class);
			List<Role> roles = roleMapper.findRolesByAnnotation("1", "1");
			System.out.println(roles.size());
		} catch(Exception ex) {
   
			ex.printStackTrace();
		} finally {
   
			if (sqlSession != null) {
   
				sqlSession.close();
			}
		}
	}

	
	public static void testFindRolesByBean() {
   
		SqlSession sqlSession = null;
		try {
   
			sqlSession = SqlSessionFactoryUtils.openSqlSession();
			RoleMapper roleMapper = sqlSession.getMapper(RoleMapper.class);
			RoleParams roleParam = new RoleParams();
			roleParam.setNote("1");
			roleParam.setRoleName("1");
			List<Role> roles = roleMapper.findRolesByBean(roleParam);
			System.out.println(roles.size());
		} catch(Exception ex) {
   
			ex.printStackTrace();
		} finally {
   
			if (sqlSession != null) {
   
				sqlSession.close();
			}
		}
	}
	
	public static void testFindByMix() {
   
		SqlSession sqlSession = null;
		try {
   
			sqlSession = SqlSessionFactoryUtils.openSqlSession();
			RoleMapper roleMapper = sqlSession.getMapper(RoleMapper.class);
			RoleParams roleParam = new RoleParams();
			roleParam.setNote("1");
			roleParam.setRoleName("1");
			PageParams pageParams = new PageParams();
			pageParams.setStart(0);
			pageParams.setLimit(100);
			List<Role> roles = roleMapper.findByMix(roleParam, pageParams);
			System.out.println(roles.size());
		} catch(Exception ex) {
   
			ex.printStackTrace();
		} finally {
   
			if (sqlSession != null) {
   
				sqlSession.close();
			}
		}
	}
	
	public static void testGetRoleUseResultMap() {
   
		SqlSession sqlSession = null;
		try {
   
			sqlSession = SqlSessionFactoryUtils.openSqlSession();
			RoleMapper roleMapper = sqlSession.getMapper(RoleMapper.class);
			Role role = roleMapper.getRoleUseResultMap(1L);
			System.out.println(role.getRoleName());
		} catch(Exception ex) {
   
			ex.printStackTrace();
		} finally {
   
			if (sqlSession != null) {
   
				sqlSession.close();
			}
		}
	}
	
	public static void testInsertRole() {
   
		SqlSession sqlSession = null;
		try {
   
			sqlSession = SqlSessionFactoryUtils.openSqlSession();
			RoleMapper roleMapper = sqlSession.getMapper(RoleMapper.class);
			Role role = new Role();
			role.setRoleName("role_name_5");
			role.setNote("note_5");
			roleMapper.insertRole(role);
			//回填
			System.out.println(role.getId());
			sqlSession.commit();
		} catch(Exception ex) {
   
			sqlSession.rollback();
			ex.printStackTrace();
		} finally {
   
			if (sqlSession != null) {
   
				sqlSession.close();
			}
		}
	}
	
	public static void testInsertRole2() {
   
		SqlSession sqlSession = null;
		try {
   
			sqlSession = SqlSessionFactoryUtils.openSqlSession();
			RoleMapper roleMapper = sqlSession.getMapper(RoleMapper.class);
			Role role = new Role();
			role.setRoleName("role_name");
			role.setNote("note");
			roleMapper.insertRole2(role);
			//回填
			System.out.println(role.getId());
			sqlSession.commit();
		} catch(Exception ex) {
   
			sqlSession.rollback();
			ex.printStackTrace();
		} finally {
   
			if (sqlSession != null) {
   
				sqlSession.close();
			}
		}
	}
	
	public static void testUpdateRole() {
   
		SqlSession sqlSession = null;
		try {
   
			sqlSession = SqlSessionFactoryUtils.openSqlSession();
			RoleMapper roleMapper = sqlSession.getMapper(RoleMapper.class);
			Role role = new Role();
			role.setRoleName("role_name_1_update");
			role.setNote("note_1_update");
			role.setId(1L);
			roleMapper.updateRole(role);
			sqlSession.commit();
		} catch(Exception ex) {
   
			sqlSession.rollback();
			ex.printStackTrace();
		} finally {
   
			if (sqlSession != null) {
   
				sqlSession.close();
			}
		}
	}
	
	public static void testDeleteRole() {
   
		SqlSession sqlSession = null;
		try {
   
			sqlSession = SqlSessionFactoryUtils.openSqlSession();
			RoleMapper roleMapper = sqlSession.getMapper(RoleMapper.class);
			roleMapper.deleteRole(3L);
			sqlSession.commit();
		} catch(Exception ex) {
   
			sqlSession.rollback();
			ex.printStackTrace();
		} finally {
   
			if (sqlSession != null) {
   
				sqlSession.close();
			}
		}
	}
	
	public static void testGetEmployee() {
   
		SqlSession sqlSession = null;
		try {
   
			sqlSession = SqlSessionFactoryUtils.openSqlSession();
			EmployeeMapper employeeMapper = sqlSession.getMapper(EmployeeMapper.class);
			Employee employee = employeeMapper.getEmployee(1L);
			System.out.println(employee.getWorkCard().getPosition());
		} catch(Exception ex) {
   
			ex.printStackTrace();
		} finally {
   
			if (sqlSession != null) {
   
				sqlSession.close();
			}
		}
	}
	
	public static void testGetEmployee2() {
   
		SqlSession sqlSession = null;
		try {
   
			sqlSession = SqlSessionFactoryUtils.openSqlSession();
			EmployeeMapper employeeMapper = sqlSession.getMapper(EmployeeMapper.class);
			Employee employee = employeeMapper.getEmployee2(1L);
			System.out.println(employee.getWorkCard().getPosition());
		} catch(Exception ex) {
   
			ex.printStackTrace();
		} finally {
   
			if (sqlSession != null) {
   
				sqlSession.close();
			}
		}
	}
	
	public static void testUserRole() {
   
		SqlSession sqlSession = null;
		try {
   
			sqlSession = SqlSessionFactoryUtils.openSqlSession();
			RoleMapper2 roleMapper2 = sqlSession.getMapper(RoleMapper2.class);
			Role2 role2 = roleMapper2.getRole(1L);
			System.out.println(role2.getUserList().size());
			UserMapper2 userMapper2 = sqlSession.getMapper(UserMapper2.class);
			User2 user2 = userMapper2.getUser(1L)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Bol5261

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

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

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

打赏作者

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

抵扣说明:

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

余额充值