Mybatis数据基本操作
<insert id="doCreate" parameterType="News"><!--添加数据-->
INSERT INTO news(title,content) VALUES (#{title},#{content}) ;
<selectKey keyColumn="nid" keyProperty="nid" order="AFTER" resultType="java.lang.Long">
SELECT LAST_INSERT_ID()
</selectKey>
</insert>
<update id="doEdit" parameterType="News"> <!--更新数据-->
UPDATE news SET title=#{title},content=#{content} WHERE nid=#{nid}
</update>
<delete id="doRemove" parameterType="java.lang.Long"><!--删除数据-->
DELETE FROM news WHERE nid=#{xiaoyu}
</delete>
查询数据(添加到News.xml)
<select id="findById" parameterType="java.lang.Long" resultType="News"><查询数据>
SELECT nid,title,content FROM news WHERE nid=#{wodenid} ;
</select>
<select id="findAll" resultType="News">
SELECT nid,title,content FROM news ;
</select>
<select id="findAllTitle" resultType="News">
SELECT nid,title FROM news ;
</select>
<select id="findSplit" resultType="News" parameterType="java.util.Map"> <分页查询>
SELECT nid,title,content FROM news WHERE ${column} LIKE #{keyword} LIMIT #{start},#{lineSize} ;
</select>
<select id="getAllCount" resultType="java.lang.Long">
SELECT COUNT(*) FROM news ;
</select>
数据更新测试
@Test
public void testDelete() throws Exception { //删除
System.out.println("数据删除:" + MyBatisSessionFactory.getSession()
.update("com.lion.mapper.NewsNS.doRemove", 9L));
MyBatisSessionFactory.getSession().commit();
MyBatisSessionFactory.close();
}
@Test
public void testEdit() throws Exception { //修改
News vo = new News();
vo.setTitle("人生最舒服的日子?");
vo.setContent("你是个屌丝,梦里成为富翁");
vo.setNid(9L); // 修改数据时需要设置准确的编号
System.out.println("数据修改:" + MyBatisSessionFactory.getSession().update("com.lion.mapper.NewsNS.doEdit", vo));
MyBatisSessionFactory.getSession().commit();
MyBatisSessionFactory.close();
MyBatisSessionFactory.getSession().commit();
MyBatisSessionFactory.close();
}
@Test
public void testSplit() throws Exception { //分页查询
Map<String,Object> splitParams = new HashMap<String,Object>() ; // 保存分页相关参数
splitParams.put("column", "title");
splitParams.put("keyword", "%%");
splitParams.put("start", 5); // (currentPage - 1) * lineSize
splitParams.put("lineSize", 5);
List<News> all = MyBatisSessionFactory.getSession().selectList("com.lion.mapper.NewsNS.findSplit",splitParams);
Long count = MyBatisSessionFactory.getSession().selectOne("com.lion.mapper.NewsNS.getAllCount",splitParams);
System.out.println("【分页数据】" + all);
System.out.println("【数据行统计】" + count);
MyBatisSessionFactory.close();
}
Mybatis数据基本操作的更多相关文章
- MyBatis基础:MyBatis数据基本操作(2)
1. MyBatis映射器 2. MyBatis数据基本操作 示例项目结构: <project xmlns="http://maven.apache.org/POM/4.0.0&quo ...
- Maven 工程下 Spring MVC 站点配置 (二) Mybatis数据操作
详细的Spring MVC框架搭配在这个连接中: Maven 工程下 Spring MVC 站点配置 (一) Maven 工程下 Spring MVC 站点配置 (二) Mybatis数据操作 这篇主 ...
- Mybatis数据操作
Maven 工程下 Spring MVC 站点配置 (二) Mybatis数据操作 详细的Spring MVC框架搭配在这个连接中: Maven 工程下 Spring MVC 站点配置 (一) M ...
- Spring Boot 2.X(二):集成 MyBatis 数据层开发
MyBatis 简介 概述 MyBatis 是一款优秀的持久层框架,支持定制化 SQL.存储过程以及高级映射.它采用面向对象编程的方式对数据库进行 CRUD 的操作,使程序中对关系数据库的操作更方便简 ...
- Mybatis数据的增删改查
数据: Student{id int,name String ,age int} 配置mybatis-config.xml <?xml version="1.0" encod ...
- MyBatis数据持久化(十一)Mybatis3、Spring4、Struts2整合开发
上一节我们將Mybatis和Spring4进行整合,本节向大家介绍Mybatis在Web开发中的应用,并与主流的MVC框架Struts2进行整合. 我们首先需要获取Struts2框架,Struts2官 ...
- MyBatis数据持久化(十)与Spring4整合
前面几节介绍了mybatis的基本使用方法,本节主要介绍如何使用mybatis与主流的IoC容器Spring进行整合. 我们首先需要获取Spring框架的jar文件,在写本文时spring的最新Rel ...
- MyBatis数据持久化(七)多表连接查询
本节继续以多表连接查询的案例介绍使用resultMap的好处,对于两张以上的表进行关联查询,当我们有选择的从不同表查询所需字段时,使用resultMap是相当方便的.例如我们有两张表,分别为用户表Us ...
- MyBatis数据持久化(六)resultMap使用
resultMap是MyBatis最强大也是最重要的特性,使用它我们可以將查询结果或者sql输入条件和一个HashMap的key进行映射,大大简化了sql查询条件的输入,而且使得数据的查询变得非常灵活 ...
随机推荐
- LibreOffice/Calc:取消单元格中的超链接
造冰箱的大熊猫@cnblogs 2019/2/27 在LibreOffice Calc的表格中输入电子邮箱地址或者网址后,软件会自动将输入内容转换为超链接形式显示.在某些情况下这种自动转换并非用户所 ...
- C/C++ - malloc/free和new/delete的区分
new/delete与malloc/free的区别主要表现在以下几个方面: 注意:最主要的区别,new/delete是运算符,而malloc/free是函数 (1).new能够自动计算需要分配的内存空 ...
- 『Codeforces 1186E 』Vus the Cossack and a Field (性质+大力讨论)
Description 给出一个$n\times m$的$01$矩阵$A$. 记矩阵$X$每一个元素取反以后的矩阵为$X'$,(每一个cell 都01倒置) 定义对$n \times m$的矩阵$A$ ...
- Taro 遇到的坑
1.createSelectorQuery无法获取节点宽高 业务场景: 列表需要在最后一页底部显示 ‘我是有底线的~’ 提示,但是如果数据只有一页且不占满屏幕的话,就不显示.需要判断 ‘我是有底线的~ ...
- JavaWeb_(Hibernate框架)Hibernate中创建实体
Hibernate中创建实体 创建实体五个基本规则 --提供无参的构造器 --成员变量的私有化,提供get.set方法,提供属性 --尽量使用包装类型 --主键(一定要有) --不要加final(hi ...
- 【java】获取项目资源路径
目资源路径分两种,一种是普通Java项目的资源路径,另一种是JavaEE项目的资源路径. 获取Java项目的包(源码下的包 或者 jar包)的资源路径 // 方法1:通过this.getClass() ...
- eureka 服务实例实现快速下线快速感知快速刷新配置解析
Spirng Eureka 默认配置解读 默认的Spring Eureka服务器,服务提供者和服务调用者配置不够灵敏,总是服务提供者在停掉很久之后,服务调用者很长时间并没有感知到变化.或者是服务已经注 ...
- 【南工程开源计划】南京工程学院 信息与通信工程学院 课程设计说明书(论文) 宽带接入技术--WLAN接入设计
文章目录 蓝奏云文件存放地址 一.课程设计目的 二.课程设计要求 三.课程设计网络环境 四.课程设计内容 4.1 WLAN接入设计 4.1.1设计拓扑 4.1.2设计原理 1)WLAN 2)RADIU ...
- P4138 [JOISC2014]挂饰
P4138 [JOISC2014]挂饰 ◦ N个装在手机上的挂饰.挂饰附有可以挂其他挂件的挂钩.每个挂件要么直接挂在手机上,要么挂在其他挂件的挂钩上.直接挂在手机上的挂件最多有1个. ...
- T89353 【BIO】RGB三角形
T89353 [BIO]RGB三角形 题解 对于这个题目有一个规律: 如果一个数列的长度为 3k+1(0<=k) 那么,这个数列最终缩放成的一个字母只和这个数列的首项,尾项有关 所以我们可以先 ...