Mybatis基于注解实现增删查改和多参数列表查询
林炳文Evankaka原创作品。转载请注明出处http://blog.csdn.net/evankaka
在【Mybatis】Mybatis入门概述及第一个Mybatis实例实现增删改查 和【Mybatis】Mybatis接口编程方式实现增删改查 演示了如何使用XML来操作Mybatis实现CRUD,但是大量的XML配置文件的编写是非常烦人的。因此Mybatis也提供了基于注解的配置方式,下面我们来演示一下使用接口加注解来实现CRUD的的例子。
本文工程免费下载
一、创建数据库、数据表
use test;
create table t_employeer(
employeer_id int not null primary key AUTO_INCREMENT ,
employeer_name varchar(50) default null,
employeer_age int default null,
employeer_department varchar(100) default null,
employeer_worktype varchar(100) default null
)
二、创建工程
整个工程目录如下:
记得要导入相应的包!
1、雇员对应的类Employeer.java
package com.mucfc.model;
/*** 雇员信息类*@author linbingwen*@time 2015.5.11*/
public class Employeer {private Integer employeer_id;private String employeer_name;private Integer employeer_age ;private String employeer_department;private String employeer_worktype;public Employeer() {super();}public Integer getEmployeer_id() {return employeer_id;}public void setEmployeer_id(Integer employeer_id) {this.employeer_id = employeer_id;}public String getEmployeer_name() {return employeer_name;}public void setEmployeer_name(String employeer_name) {this.employeer_name = employeer_name;}public Integer getEmployeer_age() {return employeer_age;}public void setEmployeer_age(Integer employeer_age) {this.employeer_age = employeer_age;}public String getEmployeer_department() {return employeer_department;}public void setEmployeer_department(String employeer_department) {this.employeer_department = employeer_department;}public String getEmployeer_worktype() {return employeer_worktype;}public void setEmployeer_worktype(String employeer_worktype) {this.employeer_worktype = employeer_worktype;}@Overridepublic String toString() {return "Employeer [employeer_id=" + employeer_id + ", employeer_name="+ employeer_name + ", employeer_age=" + employeer_age+ ", employeer_department=" + employeer_department+ ", employeer_worktype=" + employeer_worktype + "]";}}
Employeer.xml文件,用来放置一些映射,删除了Sql语句了
<?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="com.mucfc.dao.EmployeerMapper"><!-- 定义数据库字段与实体对象的映射关系 --><resultMap type="Employeer" id="employeerResultMap"><id property="employeer_id" column="employeer_id"/> <result property="employeer_name" column="employeer_name"/><result property="employeer_age" column="employeer_age"/><result property="employeer_department" column="employeer_department"/><result property="employeer_worktype" column="employeer_worktype"/></resultMap></mapper>
2、配置mybatis-config.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<!-- 这是根标签 -->
<configuration><!-- 设置别名 --><typeAliases><typeAlias alias="Employeer" type="com.mucfc.model.Employeer"/></typeAliases><!-- 配置数据源相关的信息 --><environments default="development"><environment id="development"><transactionManager type="JDBC" /><dataSource type="POOLED"><property name="driver" value="com.mysql.jdbc.Driver"/><property name="url" value="jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8"/> <property name="username" value="root"/> <property name="password" value="christmas258@"/> </dataSource></environment></environments><!-- 列出映射文件 --><mappers><mapper resource="com/mucfc/model/Employeer.xml" /></mappers>
</configuration>
3、EmployeerMapper.java在添加Sql映射语句,使用注解的方式来实现
package com.mucfc.dao;import java.util.List;
import java.util.Map;import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.ResultMap;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.SelectKey;
import org.apache.ibatis.annotations.Update;import com.mucfc.model.Employeer;/*** SQL语句映射类* @author linbingwen* @time 2015.5.11*/
public interface EmployeerMapper {@Select("select * from `t_employeer` where employeer_name like #{employeer_name}")@ResultMap("employeerResultMap")public List<Employeer> findEmployeerByName(String employeer_name); @Select("select* from `t_employeer` where employeer_name=#{0} and employeer_department=#{1}")@ResultMap("employeerResultMap")public List<Employeer> findEmployeerByNameandDep(String employeer_name,String employeer_department); @ResultMap("employeerResultMap")@Select("select* from `t_employeer` where employeer_name=#{key1} and employeer_department=#{key2}")public List<Employeer> findEmployeerByNameandDep1(Map<String,String> map);@Select("select* from `t_employeer` where employeer_id =#{id}")@ResultMap("employeerResultMap")public Employeer findEmployeerByID(int id);@Insert(" insert into `t_employeer`(employeer_name,employeer_age,employeer_department,employeer_worktype) values(#{employeer_name},#{employeer_age},#{employeer_department},#{employeer_worktype})")public void addEmployeer(Employeer employeer);@Delete("delete from `t_employeer` where employeer_id = #{employeer_id}")public void deleteEmployeer(int id);@Update(" update t_employeer set employeer_name = #{employeer_name},employeer_age= #{employeer_age},employeer_department = #{employeer_department} ,employeer_worktype=#{employeer_worktype} where employeer_id = #{employeer_id} ")public void updateEmployeer(Employeer employeer);}
4、测试使用
(1)单参数查找
/*** 查找*/public static Employeer findEmployeerById(int id) {SqlSession session = null;Employeer employeer=null;try {session = sqlSessionFactory.openSession();EmployeerMapper employeerMapper=session.getMapper(EmployeerMapper.class);employeer=employeerMapper.findEmployeerByID(id);} finally {session.close();}return employeer;}
对应SQL语句:
@Select("select* from `t_employeer` where employeer_id =#{id}")@ResultMap("employeerResultMap")public Employeer findEmployeerByID(int id);
调用:
System.out.println(findEmployeerById(10));System.out.println(findEmployeerById(11));
结果:
(2) 添加
/*** 增加*/public static void addEmployeer(Employeer employeer){SqlSession session = null;try {session = sqlSessionFactory.openSession();EmployeerMapper employeerMapper=session.getMapper(EmployeerMapper.class);employeerMapper.addEmployeer(employeer);session.commit() ; } finally {session.close();}}
对应SQL语句:
@Insert(" insert into `t_employeer`(employeer_name,employeer_age,employeer_department,employeer_worktype) values(#{employeer_name},#{employeer_age},#{employeer_department},#{employeer_worktype})")public void addEmployeer(Employeer employeer);
(3)更改
/*** 更改*/public static void updateEmployeer(Employeer employeer){SqlSession session = null;try {session = sqlSessionFactory.openSession(); EmployeerMapper employeerMapper=session.getMapper(EmployeerMapper.class);employeerMapper.updateEmployeer(employeer);session.commit() ; } finally {session.close();}}
对应SQL语句:
@Update(" update t_employeer set employeer_name = #{employeer_name},employeer_age= #{employeer_age},employeer_department = #{employeer_department} ,employeer_worktype=#{employeer_worktype} where employeer_id = #{employeer_id} ")public void updateEmployeer(Employeer employeer);
(4)删除
/*** 删除* */public static void deleteEmployeer(int id){SqlSession session = null;try {session = sqlSessionFactory.openSession();EmployeerMapper employeerMapper=session.getMapper(EmployeerMapper.class);employeerMapper.deleteEmployeer(id);session.commit() ; } finally {session.close();}}
对应SQL语句:
@Delete("delete from `t_employeer` where employeer_id = #{employeer_id}")public void deleteEmployeer(int id);
(5)列表查询
/*** 单参数查询列表*/public static List<Employeer> getEmployeerList(String employeer_name){SqlSession session = null;List<Employeer> employeers=null;try {session = sqlSessionFactory.openSession(); EmployeerMapper employeerMapper=session.getMapper(EmployeerMapper.class);employeers = employeerMapper.findEmployeerByName(employeer_name); session.commit() ; } finally {session.close();}return employeers;}/*** 多参数查询列表*/public static List<Employeer> getEmployeerList(String employeer_name,String employeer_department){SqlSession session = null;List<Employeer> employeers=null;try {session = sqlSessionFactory.openSession(); EmployeerMapper employeerMapper=session.getMapper(EmployeerMapper.class);employeers = employeerMapper.findEmployeerByNameandDep(employeer_name, employeer_department);session.commit() ; } finally {session.close();}return employeers;}/*** 多参数查询列表,使用map*/public static List<Employeer> getEmployeerList(Map<String, String> map){SqlSession session = null;List<Employeer> employeers=null;try {session = sqlSessionFactory.openSession(); EmployeerMapper employeerMapper=session.getMapper(EmployeerMapper.class);employeers = employeerMapper.findEmployeerByNameandDep1(map);session.commit() ; } finally {session.close();}return employeers;}
对应的Sql语句
@Select("select * from `t_employeer` where employeer_name like #{employeer_name}")@ResultMap("employeerResultMap")public List<Employeer> findEmployeerByName(String employeer_name); @Select("select* from `t_employeer` where employeer_name=#{0} and employeer_department=#{1}")@ResultMap("employeerResultMap") public List<Employeer> findEmployeerByNameandDep(String employeer_name,String employeer_department); @ResultMap("employeerResultMap")@Select("select* from `t_employeer` where employeer_name=#{key1} and employeer_department=#{key2}")public List<Employeer> findEmployeerByNameandDep1(Map<String,String> map);@Select("select* from `t_employeer` where employeer_id =#{id}")@ResultMap("employeerResultMap")public Employeer findEmployeerByID(int id);
测试:
System.out.println("=========================使用单参数查询===========================");List<Employeer> employeers=getEmployeerList("张三");for(Employeer employeer:employeers){System.out.println(employeer);}System.out.println("=========================使用多单参数查询===========================");List<Employeer> employeers1=getEmployeerList("张三","产品二部");for(Employeer employeer1:employeers1){System.out.println(employeer1);}System.out.println("=========================使用多单参数map方式查询===========================");Map<String, String> map = new HashMap<String, String>(); map.put("key1", "明明"); map.put("key2", "财会部");List<Employeer> employeers2=getEmployeerList(map);for(Employeer employeer2:employeers2){System.out.println(employeer2);}
结果:
林炳文Evankaka原创作品。转载请注明出处http://blog.csdn.net/evankaka
本文工程免费下载
Mybatis基于注解实现增删查改和多参数列表查询相关推荐
- MyBatis实现数据的增删查改
MyBatis的配置请参考我的上一篇文章,在上一篇文章的基础上我们实现数据的增删查改. 创建实现增删查改的xml文件,这里才是真正实现增删查改的文件. 创建完后要在配置文件中注册创建好的xml文件: ...
- 07_MySQL数据库_增删查改
此专栏所有章节快速导航 01_MySQL数据库_CentOS7安装MySQL 02_MySQL数据库_数据库基础知识 03_MySQL数据库_库的操作 04_MySQL数据库_表的操作 05_MySQ ...
- mybatis 介绍 入门 mapper配置文件 增删查改 别名配置 #和 $的区别
mybatis 介绍 今天,一起来说说mybits这个框架吧.这是一个持久层的框架.之前叫做ibatis. 所以,在它的代码中出现ibatis这个词的时候,不要感到惊讶.不是写错了,它确实就是这个样子 ...
- Mybatis、SpringBoot入门实战(微型项目) -- Mysql增删查改、写接口、测试接口
Mybatis入门实战(微型项目) – Mysql增删查改.写接口.测试接口 开发环境: 1.Window10 v1909 2.idea 2019 3.jdk 1.8 4.mybatis 3.5.5 ...
- (4) hibernate增删查改+批量操作+类似Mybatis动态sql
简介 采用spring + hibernate + freemaker+ maven搭建起来的一个hibernate增删查改和 类似mybatis动态sql查询的一个案例 增删查改demo + 动态s ...
- 支持增删查改的简单Java Web通讯录详细教程【基于Mac OS+IDEA+Servlet+JDBC+Tomcat】
本文将以Web版通讯录的形式介绍一个支持简单增删查改的Java Web项目,软硬件环境基于Macbook Air M2+macOS Ventura 13.1+IntelliJ IDEA 2022,技术 ...
- 初学jsp课,一个基于jsp+javabean+servlet+sql server小型房源网站,实现了用户表,房源表,及留言板的增删查改。使用deamwear编译器
1 设计目的 <Web应用开发课程设计>是实践性教学环节之一,是<Web程序设计>课程的辅助教学课程.通过课程设计,使学生掌握Web网站的基本概念,结合实际的操作和设计,巩固课 ...
- java调用js查询mongo_MongoDB增删查改操作示例【基于JavaScript Shell】
本文实例讲述了MongoDB增删查改操作.分享给大家供大家参考,具体如下: MongoDB自带了一个JavaScript Shell,所以在其中使用js语法是可以的. Insert操作: 单条插入 v ...
- spring和mybatis结合做简单的增删查改系统_springbootamp;amp;vue简单的景点信息管理系统...
springboot&&vue简单的景点信息管理系统 这两天闲着没有什么事,就根据陈哥的教程,试着写了一个springboot和vue的简单的景点信息管理系统.也就大致实现了最基本的增 ...
最新文章
- 手挽手带你学React:四档(上)一步一步学会react-redux (自己写个Redux)
- 批量开物料账期的程序
- 基于光学导航系统,矩阵变换和3D-2D配准研究
- java 配置jmstemplate_SpringBoot集成JmsTemplate(队列模式和主题模式)及xml和JavaConfig配置详解...
- 编程让鼠标一直动_华硕、罗技、海盗船无线鼠标选哪个?
- C语言课后习题(32)
- jeecgboot配置文件_Jeecg-Boot 技术文档
- (102)FPGA面试题-如何选择FPGA型号?
- 疯狂挂载:Linux连接常用外部设备的方法
- JDK源码阅读调试环境搭建
- 树莓派能学linux吗,用树莓派能高效学习Linux和Python吗?
- 广州大学计算机考研有歧视吗,本科985,考研被调剂去了普通一本广州大学,有必要读吗?...
- 015-包、crate、模块
- python列表按照字母排序_Python:按字母顺序对列表进行排序/分组
- 在Java中产生随机数及掷骰子
- oracle ppt讲义,oracle课件.ppt
- 国密算法Go语言实现(详解)(九) ——SM2(椭圆曲线公钥密码算法)
- 强制结束进程的命令和软件
- vb 窗体画面打不开
- 第006天:APP的数据存储技术