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 ...
随机推荐
- C++可继承的单例基类模板
目录 一.介绍 二.代码 三.关键处 五.参考资料 一.介绍 最近在写一个项目,其中用到好几个单例,类本身的设计不是很复杂,但是如果每个都写一遍单例又觉得有点冗余:所以查资料写了一个单例基类模板,只要 ...
- windows上的mysql配置过程
个人电脑的mysql配置,记录下来留作备忘 1. 首先去官网下载最新的mysql安装包,我下的是5.7.25,地址是 https://dev.mysql.com/downloads/windows/ ...
- 如何布局您的PC站和移动站,并表达两者之间内容的对应关系
如何布局您的PC站和移动站,并表达两者之间内容的对应关系 目前较流量的PC站与移动站配置方式有三种,百度站在搜索引擎角度将这三种分别称为跳转适配.代码适配和自适应,以下为这三种配置方式的名词解释及 ...
- SQL Operations Studio的安装和使用
之前管理和访问SQL SERVER使用的自然是SSMS,功能确实很强大的一个数据库图形化管理软件,但是SSMS有个问题就是体积超级大,启动速度也就比较慢.今天我正好要学习一些T-SQL的内容,在微软的 ...
- 通过iLO进行Zabbix监控——针对HP服务器集成
iLO 全名是 Integrated Lights-out,它是惠普某些型号的服务器上集成的远程管理端口,它能够允许用户基于不同的操作系统从远端管理服务器,实现了虚拟存在和控制,从而进行智能型基础构架 ...
- 【RL系列】马尔可夫决策过程——状态价值评价与动作价值评价
请先阅读上两篇文章: [RL系列]马尔可夫决策过程中状态价值函数的一般形式 [RL系列]马尔可夫决策过程与动态编程 状态价值函数,顾名思义,就是用于状态价值评价(SVE)的.典型的问题有“格子世界(G ...
- Java中&、|、&&、||详解
1.Java中&叫做按位与,&&叫做短路与,它们的区别是: & 既是位运算符又是逻辑运算符,&的两侧可以是int,也可以是boolean表达式,当&两侧 ...
- idea最常使用的快捷键
撤销 反撤销 : Ctrl+Z / Ctrl+Shift+Z 删除一行 : Ctrl+Y 跳到实现类 : Ctrl+Alt+B 重命名文件: shift+F6 控制台放大缩小: ctrl+shif ...
- Notes of Daily Scrum Meeting(11.10)
Notes of Daily Scrum Meeting(11.10) 今天是周一,虽然仍然在假期里,但是我们仍然要继续我们团队的开发工作了,分工大家已然都很明确,所以接下来 就是认真投入,把自己负责 ...
- java equals()方法的注意事项
1.在写代码的时候,我们有时候需要判断两个相同类的对象的值是否全部相等,很多人想到的就是equals()方法,但是equals方法真的是可以比较吗?其实equals方法比较的并不是两个对象的值,它只是 ...