MyBatis.3.CRUD
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="org.mybatis.example.dao.DeptMapper"> <select id="selectOne" parameterType="int" resultType="org.mybatis.example.dao.Dept"> select * from dept where deptno=#{id} </select> <insert id="insertDept" parameterType="org.mybatis.example.dao.Dept" useGeneratedKeys="true" keyProperty="dept"> insert into dept(dname,loc) values( #{dname,jdbcType=VARCHAR}, #{loc,jdbcType=VARCHAR}) </insert> <update id="updateDept" parameterType="org.mybatis.example.dao.Dept"> update dept set dname=#{dname},loc=#{loc} where deptno=#{deptno} </update> <delete id="deleteDept" parameterType="java.lang.Integer"> delete from dept where deptno=#{id} </delete> </mapper>
package org.mybatis.example.dao; public interface DeptMapper { public Dept selectOne(int id); public int insertDept(Dept dept); public int updateDept(Dept dept); public int deleteDept(int id); }
import java.io.IOException; import java.io.Reader; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import org.mybatis.example.dao.Dept; import org.mybatis.example.dao.DeptMapper; public class Test2 { public static void main(String[] args) throws IOException { String resource="mybatisConfig.xml"; Reader reader=Resources.getResourceAsReader(resource); SqlSessionFactory sqlMapper=new SqlSessionFactoryBuilder().build(reader); SqlSession session=sqlMapper.openSession(); try { DeptMapper mapper=session.getMapper(DeptMapper.class); //1.查询 // Dept dept=mapper.selectOne(2); // System.out.println(dept.getDname()); //2.插入操作 Dept dept=new Dept(); dept.setDname("张沅湲"); dept.setLoc("郑州"); mapper.insertDept(dept); session.commit();//实现增加 修改 删除 //3.更新操作; // Dept dept=new Dept(); // dept.setDeptno(3); // dept.setDname("张沅湲"); // dept.setLoc("湖南"); // mapper.updateDept(dept); // session.commit(); //4.删除操作; // int i=mapper.deleteDept(3); // session.commit(); // System.out.println(i); } catch (Exception e) { e.printStackTrace(); }finally{ session.close(); } } }
复杂的查询,在项目开发中,可以使用一个工具类来封装这些复杂的步骤:
package org.mybatis.example.dao; import java.io.Reader; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; public class SqlSessionFactoryUtil { private static SqlSessionFactory factory; public SqlSessionFactoryUtil() {} static{ Reader reader=null; try { reader=Resources.getResourceAsReader("mybatisConfig.xml"); factory=new SqlSessionFactoryBuilder().build(reader); } catch (Exception e) { e.printStackTrace(); }finally{ try { if(reader!=null)reader.close(); } catch (Exception e2) { e2.printStackTrace(); } } } public static SqlSession getSqlSession(){ return factory.openSession(); } }
DeptMapper接口的完全代码:
package org.mybatis.example.dao; import java.util.List; public interface DeptMapper { public Dept selectOne(int id); public int insertDept(Dept dept); public int updateDept(Dept dept); public int deleteDept(int id); public List<Dept>selectAllDepts(); public List<Dept>selectByCriteria(String deptName); }
1.查询所有部门信息参考代码;
<select id="selectAllDepts" resultType="org.mybatis.example.dao.Dept" > select deptno,dname,loc from dept </select>
测试代码;
import java.util.List; import org.apache.ibatis.session.SqlSession; import org.mybatis.example.dao.Dept; import org.mybatis.example.dao.DeptMapper; import org.mybatis.example.dao.SqlSessionFactoryUtil; public class Test3 { public static void main(String[] args) { SqlSession session=SqlSessionFactoryUtil.getSqlSession(); try { DeptMapper mapper=session.getMapper(DeptMapper.class); List<Dept>depts=mapper.selectAllDepts(); for(Dept dept:depts){ System.out.println("部门名称:"+dept.getDname()); } } catch (Exception e) { e.printStackTrace(); }finally{ session.close(); } } }
2.按条件查询,映射文件做以下修改,新增条件为模糊查询方法:
<!-- 按条件查询 --> <select id="selectByCriteria" parameterType="java.lang.String" resultType="org.mybatis.example.dao.Dept"> select deptno,dname,loc from dept where dname like '%${_parameter}%' </select>
测试代码
import java.util.List; import org.apache.ibatis.session.SqlSession; import org.mybatis.example.dao.Dept; import org.mybatis.example.dao.DeptMapper; import org.mybatis.example.dao.SqlSessionFactoryUtil; //按照条件进行查询; public class Test4 { public static void main(String[] args) { SqlSession session=SqlSessionFactoryUtil.getSqlSession(); try { DeptMapper mapper=session.getMapper(DeptMapper.class); List<Dept>depts=mapper.selectByCriteria("网络部"); for(Dept dept:depts){ System.out.println("部门名称:"+dept.getDname()); } } catch (Exception e) { e.printStackTrace(); }finally{ session.close(); } } }
MyBatis.3.CRUD的更多相关文章
- MyBatis:CRUD功能
在前面已经自动生成了mapper和pojo,接下来我们实现mybatis的CRUD功能,先新建service.controller层的方法. 这里的sid是一个开源的id生成类,写完后,我们还需要在启 ...
- Mybatis的CRUD案例
一.Mybatis增删改查案例 上一节<Mybatis入门和简单Demo>讲了如何Mybatis的由来,工作流程和一个简单的插入案例,本节主要继上一讲完整的展示Mybatis的CRUD操作 ...
- 【MyBatis】MyBatis实现CRUD操作
1.实现基本CRUD功能 使用MyBatis对数据完整的操作,也就是CRUD功能的实现.根据之前的内容,要想实现CRUD,只需要进行映射文件的配置. 范例:修改EmpMapper.xml文件,实现CR ...
- SpringBoot 整合 Mybatis 进行CRUD测试开发
今天来和大家分享下 Spring Boot 整合 MyBatis 的 CRUD 测试方法开发.因为 MyBaits 有两种开发形式,一种基于注解,一种基于 xml . SpringBoot配置文件也有 ...
- 基于mybatis的CRUD
u 基于Mybatis的CRUD u 掌握MyBatis的结果类型-resultMap和resultType u 掌握MyBatis的参数类型 u 掌握#和$两种语法 1 基于myb ...
- 05 Mybatis的CRUD操作和Mybatis连接池
1.CRUD的含义 CRUD是指在做计算处理时的增加(Create).读取(Retrieve)(重新得到数据).更新(Update)和删除(Delete)几个单词的首字母简写.主要被用在描述软件系统中 ...
- 03 Mybatis:05.使用Mybatis完成CRUD
mybatis框架:共四天 明确:我们在实际开发中,都是越简便越好,所以都是采用不写dao实现类的方式.不管使用XML还是注解配置. 第二天:mybatis基本使用 mybatis的单表crud操作 ...
- mybatis(CRUD)
3.mybatis(CRUD) 有了mybatis,我们要对数据库进行增删改查只需要操作接口和mapper.xml文件,然后进行测试就可以了. 实例代码如下: 接口 public interface ...
- MyBatis之CRUD
1 mybatis框架介绍 1.1回顾jdbc操作数据库的过程 1.2 mybatis开发步骤 A.提供一个SqlMapperConfig.xml(src目录下),该文件主要配置数据库连接,事务,二级 ...
- MyBatis Tutorial – CRUD Operations and Mapping Relationships – Part 1---- reference
http://www.javacodegeeks.com/2012/11/mybatis-tutorial-crud-operations-and-mapping-relationships-part ...
随机推荐
- docker 从本地拷贝文件
1.找到docker的ID全称 docker inspect -f '{{.Id}}' docker_name 2.执行拷贝命令 docker cp 本地文件路径 ID全称:docker路径 3.如果 ...
- 【CentOS_7】安装nginx
1,下载 [root@VM_0_7_centos local]# wget http://nginx.org/download/nginx-1.14.2.tar.gz ---- ::-- http:/ ...
- 如何通过阿里云APP进行域名备案?阿里云备案流程需要多久?
如何通过阿里云APP进行域名备案? 1.准备备案材料(很多初次使用阿里云APP进行备案的同学会问备案需要准备哪些资料,不二版本下面就给大家一一列举出来) 个人备案需要材料: ⑴<用户网站备案授权 ...
- 简单理解DNS解析流程(一)
0x0 简单理解dns DNS服务器里存着一张表 表中放着域名和IP地址,域名和IP地址以映射关系保存,即一对一 浏览器访问某个域名,实际上是访问它的ip地址 所以浏览器需要知道域名对应的ip地址 如 ...
- 论如何制做一个工程APP的测试内容
测试一般在软件开发过程中就已经开始进行了,测试越早.发现问题解决他的方案成本就越小.测试按照类型来区分可以划分为:单元测试,集成测试,系统测试.而OCUNIT是XCODE自带的单元测试工具.需要建立新 ...
- 剑指offer:二位数组中的查找
准备找实习期间,复习一下数据相关内容,刷刷题. 题目描述: 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样 ...
- Teamwork(The eighth day of the team)
在经过算是蛮艰辛的努力后吧,我们终于有了一点点成果.虽然还离理想中的蛮遥远的,但是我们相信,虽然我们走得很慢,但是我们一直都会坚持前进.
- Week4-作业1:《构建之法》第四章、第十七章 阅读笔记与思考
第四章 两人合作 这一章是讲述了两人结对编程的一些东西,包括一些代码的规范,还有结对编程的优点.怎么做.以及一些注意事项. 1.“错误处理 当程序的主要功能实现后,一些程序员会乐观地估计只需要另外 ...
- apache 2.4目录权限
apache 2.4 好象不再支持以下指令...Order allow,denyAllow from all 用上面的指令访问页面时显示错误:client denied by server confi ...
- angularJS1笔记-(8)-内置指令
index.html: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&qu ...