<?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的更多相关文章

  1. MyBatis:CRUD功能

    在前面已经自动生成了mapper和pojo,接下来我们实现mybatis的CRUD功能,先新建service.controller层的方法. 这里的sid是一个开源的id生成类,写完后,我们还需要在启 ...

  2. Mybatis的CRUD案例

    一.Mybatis增删改查案例 上一节<Mybatis入门和简单Demo>讲了如何Mybatis的由来,工作流程和一个简单的插入案例,本节主要继上一讲完整的展示Mybatis的CRUD操作 ...

  3. 【MyBatis】MyBatis实现CRUD操作

    1.实现基本CRUD功能 使用MyBatis对数据完整的操作,也就是CRUD功能的实现.根据之前的内容,要想实现CRUD,只需要进行映射文件的配置. 范例:修改EmpMapper.xml文件,实现CR ...

  4. SpringBoot 整合 Mybatis 进行CRUD测试开发

    今天来和大家分享下 Spring Boot 整合 MyBatis 的 CRUD 测试方法开发.因为 MyBaits 有两种开发形式,一种基于注解,一种基于 xml . SpringBoot配置文件也有 ...

  5. 基于mybatis的CRUD

    u  基于Mybatis的CRUD u  掌握MyBatis的结果类型-resultMap和resultType u  掌握MyBatis的参数类型 u  掌握#和$两种语法 1      基于myb ...

  6. 05 Mybatis的CRUD操作和Mybatis连接池

    1.CRUD的含义 CRUD是指在做计算处理时的增加(Create).读取(Retrieve)(重新得到数据).更新(Update)和删除(Delete)几个单词的首字母简写.主要被用在描述软件系统中 ...

  7. 03 Mybatis:05.使用Mybatis完成CRUD

    mybatis框架:共四天 明确:我们在实际开发中,都是越简便越好,所以都是采用不写dao实现类的方式.不管使用XML还是注解配置. 第二天:mybatis基本使用 mybatis的单表crud操作 ...

  8. mybatis(CRUD)

    3.mybatis(CRUD) 有了mybatis,我们要对数据库进行增删改查只需要操作接口和mapper.xml文件,然后进行测试就可以了. 实例代码如下: 接口 public interface ...

  9. MyBatis之CRUD

    1 mybatis框架介绍 1.1回顾jdbc操作数据库的过程 1.2 mybatis开发步骤 A.提供一个SqlMapperConfig.xml(src目录下),该文件主要配置数据库连接,事务,二级 ...

  10. MyBatis Tutorial – CRUD Operations and Mapping Relationships – Part 1---- reference

    http://www.javacodegeeks.com/2012/11/mybatis-tutorial-crud-operations-and-mapping-relationships-part ...

随机推荐

  1. vue mock(模拟后台数据) 最简单实例(一)——适合小白

    开发是前后端分离,不需要等待后台开发.前端自己模拟数据,经本人测试成功. 我们在根目录新建存放数据的json文件,存放我们的数据data.json //data.json{ "status& ...

  2. 51nod-1298 圆与三角形(计算几何超详解)

    题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1298 给出圆的圆心和半径,以及三角形的三个顶点,问圆同三角形是 ...

  3. xocde missing file 解决方法

    创建一个警告里丢失的文件 托到警报的目录下 重启xcode 警告消失 在xcode中选中这个文件右键delete再次删掉文件,就OK了.

  4. dmesg命令详解

    基础命令学习目录 http://linux.cn/article-3587-1.html dmesg 命令的使用范例 下面我们展示一些最负盛名的‘dmesg’命令工具以及其实际使用举例.‘dmesg’ ...

  5. js中 null, undefined, 0,空字符串,false,不全等比较

    null == undefined // true null == ''  // false null == 0 // false null == false // false undefined = ...

  6. RHEL6.4 xclock安装小记

    http://blog.sina.com.cn/s/blog_623630d50101tc67.html

  7. Scrum立会报告+燃尽图(Final阶段第四次)

    此作业要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2481 项目地址:https://coding.net/u/wuyy694 ...

  8. No.110_第三次团队会议

    前端的易帜 前端在整个软件中有着举足轻重的地位.前端设计一般可以理解为视觉设计,前端开发则是前台代码的实现. 随着科技水平的提高和生产力的提高,人民对于审美的要求逐渐增高.在没有科技壁垒的情况下,是否 ...

  9. OO学习总结与体会

    前言 经过了对于面向对象程序设计的一个月的学习,我初尝了JAVA以及面向对象程序的魅力.经历了三次难度逐渐加大的课后编程作业,我对于工程化面向对象编程以及调试有了深刻的认识与颇多感想.我写下本篇文章以 ...

  10. Linux 基础入门第一次实验笔记

    第一节.实验介绍 本节主要介绍 Linux 的历史,Linux 与 Windows 的区别等入门知识.如果你已经有过充分的了解,可以跳过本节,直接进入下一个实验. 一.Linux 为何物 Linux ...