- 浏览: 188194 次
- 性别:
- 来自: 上海
文章分类
最新评论
传入参数必须与配置文件中标明的参数一致
如
<select id="findByBookId" parameterType="java.lang.Integer" resultType="com.ichrono.rysmart.chronoline.bean.model.SportsBookFile">
select * from <include refid="tableName"/> t
where t.book_id=#{bookId}
</select>
传入String、Long等会报错
<select id="findByBookId" parameterType="java.lang.Long" resultType="com.ichrono.rysmart.chronoline.bean.model.SportsBookFile">
select * from <include refid="tableName"/> t
where t.book_id=#{bookId}
</select>
传入Integer 也会报错,不能自动转型
对于映射的model 类,如果数据库中的字段类型能够转型到model类的字段类型,那么就不会报错,否则则会报错
如数据库字段为 Int类型,则model类对应的字段可以为String 可以为Long 等。
如果数据库中字段为varchar 且存取的数据可以转化成int 或long等,则也不会报错,
否则会报错。
mybatis 插入和更新只返回行数,不能返回主键
只能通过以下方式:
<insert id="insert" parameterType="cn.softsea.model.DicCity" >
<selectKey resultType="java.lang.Integer" keyProperty="id" order="AFTER" >
SELECT LAST_INSERT_ID()
</selectKey>
insert into Dic_City (City_Code, Provinces_Code,
State_Code, City_Name, PY_Code,
PY_Code_Short, Ext1, Ext2,
Ext3, Ext4, Ext5)
values (#{cityCode,jdbcType=VARCHAR}, #{provincesCode,jdbcType=VARCHAR},
#{stateCode,jdbcType=VARCHAR}, #{cityName,jdbcType=VARCHAR}, #{pyCode,jdbcType=VARCHAR},
#{pyCodeShort,jdbcType=VARCHAR}, #{ext1,jdbcType=VARCHAR}, #{ext2,jdbcType=VARCHAR},
#{ext3,jdbcType=VARCHAR}, #{ext4,jdbcType=VARCHAR}, #{ext5,jdbcType=VARCHAR})
</insert>
调用Mapper返回主键:
//生成新对象用于插入
DicCity city = new DicCity();
city.setCityCode("330100");
city.setCityName("杭州市");
//获取mapper对象
DicCityMapper cityMapper = (DicCityMapper) SpringContextUtil.getBean("dicCityMapper");
int row = cityMapper.insert(city); //insrt不再返回主键,只返回响应行数,这点和ibatis不同了
System.out.println("响应的行数:"+row);
//取得自增的标识列 ID的值
System.out.println("新插入的数据的ID:"+city.getId());
另:再解释一下selectKey 的 order="BEFORE"时,表示 selectKey 中的语句先执行,接着再执行insert语句,这用于oracle的sequence方式获取主键。
mysql 中用after id自动生成后 获得id ,返回回去。
数据库中字段 映射到map字段,取出时类型必须一致,否则报错
mysql数据库 日期可以传String
mysql 中表字段 限定了小数位数 ,即使存储的是整数,则查询的model里相应字段 仍然带有小数
比如 数据库字段 Decimal 长度 5 小数点 2
存储 70 则model里映射的是70.00
如
<select id="findByBookId" parameterType="java.lang.Integer" resultType="com.ichrono.rysmart.chronoline.bean.model.SportsBookFile">
select * from <include refid="tableName"/> t
where t.book_id=#{bookId}
</select>
传入String、Long等会报错
<select id="findByBookId" parameterType="java.lang.Long" resultType="com.ichrono.rysmart.chronoline.bean.model.SportsBookFile">
select * from <include refid="tableName"/> t
where t.book_id=#{bookId}
</select>
传入Integer 也会报错,不能自动转型
对于映射的model 类,如果数据库中的字段类型能够转型到model类的字段类型,那么就不会报错,否则则会报错
如数据库字段为 Int类型,则model类对应的字段可以为String 可以为Long 等。
如果数据库中字段为varchar 且存取的数据可以转化成int 或long等,则也不会报错,
否则会报错。
mybatis 插入和更新只返回行数,不能返回主键
只能通过以下方式:
<insert id="insert" parameterType="cn.softsea.model.DicCity" >
<selectKey resultType="java.lang.Integer" keyProperty="id" order="AFTER" >
SELECT LAST_INSERT_ID()
</selectKey>
insert into Dic_City (City_Code, Provinces_Code,
State_Code, City_Name, PY_Code,
PY_Code_Short, Ext1, Ext2,
Ext3, Ext4, Ext5)
values (#{cityCode,jdbcType=VARCHAR}, #{provincesCode,jdbcType=VARCHAR},
#{stateCode,jdbcType=VARCHAR}, #{cityName,jdbcType=VARCHAR}, #{pyCode,jdbcType=VARCHAR},
#{pyCodeShort,jdbcType=VARCHAR}, #{ext1,jdbcType=VARCHAR}, #{ext2,jdbcType=VARCHAR},
#{ext3,jdbcType=VARCHAR}, #{ext4,jdbcType=VARCHAR}, #{ext5,jdbcType=VARCHAR})
</insert>
调用Mapper返回主键:
//生成新对象用于插入
DicCity city = new DicCity();
city.setCityCode("330100");
city.setCityName("杭州市");
//获取mapper对象
DicCityMapper cityMapper = (DicCityMapper) SpringContextUtil.getBean("dicCityMapper");
int row = cityMapper.insert(city); //insrt不再返回主键,只返回响应行数,这点和ibatis不同了
System.out.println("响应的行数:"+row);
//取得自增的标识列 ID的值
System.out.println("新插入的数据的ID:"+city.getId());
另:再解释一下selectKey 的 order="BEFORE"时,表示 selectKey 中的语句先执行,接着再执行insert语句,这用于oracle的sequence方式获取主键。
mysql 中用after id自动生成后 获得id ,返回回去。
数据库中字段 映射到map字段,取出时类型必须一致,否则报错
mysql数据库 日期可以传String
mysql 中表字段 限定了小数位数 ,即使存储的是整数,则查询的model里相应字段 仍然带有小数
比如 数据库字段 Decimal 长度 5 小数点 2
存储 70 则model里映射的是70.00
发表评论
文章已被作者锁定,不允许评论。
-
spring boot
2017-11-22 14:12 0spring boot service mesh spring ... -
spring 线程池
2016-07-10 10:26 510一、初始化 1,直接调用 [java] view plai ... -
Reactor、Disruptor
2016-04-27 12:55 1073Reactor 主要用于帮助开发者创建基于JVM的异步应用程序 ... -
mybatis 帮助文档
2016-04-22 11:01 494http://www.mybatis.org/mybatis- ... -
spring mybatis
2016-03-25 15:43 539org.mybatis.spring.SqlSessionTe ... -
mybatis深入
2016-03-21 13:59 482-------Mybatis数据源与连 ... -
关于 mybatis 传参
2016-03-18 10:46 550基本数据类型:包含int,String,Date等。基本数据类 ... -
spring 加载配置文件 xml 和properties
2016-03-17 17:12 2933Spring配置文件是集成了Spring框架的项目的核心,引擎 ... -
spring 事务 提交
2016-03-07 15:16 780如果你不启用事务,默认是自动提交的,不需要设置autoComm ... -
mybatis 、jdbc 、 spring事务模板
2016-03-04 16:22 850mybatis深入: http://b ... -
mybatis 转义字符
2015-11-28 16:23 20521、在xml的sql语句中,不能直接用大于号、小于号要用转义字 ... -
mybatis jdbc 字段映射类型
2015-09-29 14:38 2107mybatis常用jdbcType数据类型 MyBati ... -
org.springframework.jdbc.support.lob.DefaultLobHandler
2015-06-04 10:51 604http://www.ibm.com/developerwor ... -
spring bean 继承与 java 继承异同
2015-01-08 10:36 794bean的定义中可能会包含 ... -
spring 延迟加载与 init-method,afterPropertiesSet和BeanPostProcessor
2015-01-06 10:44 2578ApplicationContext实现的默认行为就是在启动时 ... -
Spring MethodInterceptor
2015-01-05 18:23 794我们知道在Spring中一共提供了四种Advice用来支持对方 ... -
Spring BeanNameAutoProxyCreator 与 ProxyFactoryBean
2015-01-05 18:10 817一般我们可以使用ProxyBeanFactory,并配置pro ... -
Spring aop 原理及各种应用场景
2015-01-05 17:16 8160AOP是Aspect Oriented Programing的 ... -
ibatis逻辑分页与物理分页
2014-12-31 14:26 581一 直以来ibatis的分页都是通过滚动ResultSet实现 ... -
iBATIS mybatis 配置 说明
2014-12-30 17:27 1448SqlMapClientFactoryBean的主要的几个属性 ...
相关推荐
在 MyBatis 项目中,pom.xml 文件通常会包含 MyBatis 和相关库(如 MySQL 驱动、日志库等)的依赖。例如,你可能会看到类似 `<dependency>` 标签,里面列出了 MyBatis 的版本号,如下: ```xml <groupId>org....
MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以使用简单的XML或注解进行配置和原始映射,将接口和Java的POJOs(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录,使得...
本项目是一个基于Java的SSM(Spring、SpringMVC、MyBatis)框架与MySQL数据库相结合的鲜花售卖系统。这是一个常见的Web应用开发实践,适用于学习和提升Java Web开发技能,尤其是对于毕业生或进行课程设计的学生来说...
本项目是一个基于Java的SSM(Spring、SpringMVC、MyBatis)框架与MySQL数据库相结合的社区生鲜订购系统,适合用作毕业设计或课程设计的实践项目。这个系统不仅涵盖了基本的源代码,还包括了数据库设计以及环境配置的...
本项目是一个基于Java的SSM(Spring、SpringMVC、MyBatis)框架与MySQL数据库相结合的物流公司管理系统,适用于毕业设计或课程设计实践。通过这个系统,学生可以深入理解企业级应用开发流程,并掌握相关技术栈的运用...
【SSM+MySQL 团员管理系统】是一个基于Java SSM框架(Spring、SpringMVC、MyBatis)和MySQL数据库的毕业设计项目。本系统旨在为团组织提供一个高效、便捷的成员管理平台,实现对团员信息的录入、查询、更新和删除等...
- **MySQL**:MySQL 是全球最流行的开源关系型数据库之一,被广泛应用于各种规模的应用程序中。 #### 2. 架构设计 - **B/S架构**:B/S(Browser/Server)架构是一种典型的三层架构,包括表示层(浏览器)、业务逻辑...
总的来说,这个项目为学习者提供了一个全面的实践平台,涵盖了Web开发中的许多核心技术,包括Spring Boot、MySQL数据库的使用,以及Java后端开发的基本流程,对于提升Java编程和项目管理能力具有很高的价值。...
开发者不再需要编写大量的JDBC代码,只需通过XML或注解方式配置SQL语句,Mybatis会自动处理结果映射和参数绑定。在本系统中,Mybatis作为数据访问层,使得数据操作更为简洁和高效。 数据库方面,系统选择了MySQL,...
在本项目中,MyBatis负责与MySQL数据库的交互,实现了数据的CRUD操作。 4. **MySQL数据库**:作为开源的关系型数据库管理系统,MySQL因其高性能、稳定性及易用性而被广泛应用。在这个网上拍卖系统中,MySQL存储了...
MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。它可以让你用XML或注解来映射SQL语句,从而更加灵活地控制SQL的编写。 在米米商城项目中,我们可以期待学习以下知识点: 1. **环境搭建**:如何...
4. **MySQL数据库**:虽然未在标签中明确提及,但通常SSM项目会使用MySQL作为后端数据库,存储房屋租赁系统中的租户信息、房源信息、租赁合同等数据。 5. **前端技术**:描述中提到的“l5”可能指的是HTML5,它是...
MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。在网月科技公司的门户网站中,MyBatis可能被用来处理数据库操作,通过XML或注解方式定义SQL语句,与Java对象进行映射,简化数据库交互。 4. **Java*...
在本项目中,SpringMVC负责接收前端请求,调用后端服务,处理结果并返回给前端展示。 3. **MyBatis框架**:MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC...
MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以使用简单的XML或注解进行配置和原始映射,将接口和Java的POJOs(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。 2. **...
MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。在本系统中,MyBatis作为数据库操作的桥梁,通过XML或注解方式定义SQL语句,实现了数据库查询、插入、更新和删除等操作。 4. **微信小程序**:微信...
- **方法重载:**在Java中,接口不能重载方法,但在MyBatis中可以通过不同的参数列表实现类似的功能。 **10. Mybatis是如何进行分页的?分页插件的原理是什么?** - **分页实现:**可以通过在SQL语句中使用LIMIT...
开发者可能使用MySQL这样的关系型数据库管理系统来存储和管理这些数据,通过MyBatis与Java代码交互,完成数据的增删改查操作。 配置环境说明通常会涵盖如何搭建开发环境,如安装JDK、设置环境变量、导入项目到IDE...
**MyBatis** 是一个持久层框架,它允许开发者编写SQL语句并与Java对象进行映射,避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis支持动态SQL,使得数据库操作更加灵活。 在提供的压缩包中,`aixin`...
MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。在这个超市管理系统中,MyBatis作为数据访问层,通过XML或注解方式定义SQL语句,与数据库进行交互,实现数据的增删改查操作。 4. **SQL操作**:在...