林炳文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基于注解实现增删查改和多参数列表查询相关推荐

  1. MyBatis实现数据的增删查改

    MyBatis的配置请参考我的上一篇文章,在上一篇文章的基础上我们实现数据的增删查改. 创建实现增删查改的xml文件,这里才是真正实现增删查改的文件. 创建完后要在配置文件中注册创建好的xml文件: ...

  2. 07_MySQL数据库_增删查改

    此专栏所有章节快速导航 01_MySQL数据库_CentOS7安装MySQL 02_MySQL数据库_数据库基础知识 03_MySQL数据库_库的操作 04_MySQL数据库_表的操作 05_MySQ ...

  3. mybatis 介绍 入门 mapper配置文件 增删查改 别名配置 #和 $的区别

    mybatis 介绍 今天,一起来说说mybits这个框架吧.这是一个持久层的框架.之前叫做ibatis. 所以,在它的代码中出现ibatis这个词的时候,不要感到惊讶.不是写错了,它确实就是这个样子 ...

  4. Mybatis、SpringBoot入门实战(微型项目) -- Mysql增删查改、写接口、测试接口

    Mybatis入门实战(微型项目) – Mysql增删查改.写接口.测试接口 开发环境: 1.Window10 v1909 2.idea 2019 3.jdk 1.8 4.mybatis 3.5.5 ...

  5. (4) hibernate增删查改+批量操作+类似Mybatis动态sql

    简介 采用spring + hibernate + freemaker+ maven搭建起来的一个hibernate增删查改和 类似mybatis动态sql查询的一个案例 增删查改demo + 动态s ...

  6. 支持增删查改的简单Java Web通讯录详细教程【基于Mac OS+IDEA+Servlet+JDBC+Tomcat】

    本文将以Web版通讯录的形式介绍一个支持简单增删查改的Java Web项目,软硬件环境基于Macbook Air M2+macOS Ventura 13.1+IntelliJ IDEA 2022,技术 ...

  7. 初学jsp课,一个基于jsp+javabean+servlet+sql server小型房源网站,实现了用户表,房源表,及留言板的增删查改。使用deamwear编译器

    1 设计目的 <Web应用开发课程设计>是实践性教学环节之一,是<Web程序设计>课程的辅助教学课程.通过课程设计,使学生掌握Web网站的基本概念,结合实际的操作和设计,巩固课 ...

  8. java调用js查询mongo_MongoDB增删查改操作示例【基于JavaScript Shell】

    本文实例讲述了MongoDB增删查改操作.分享给大家供大家参考,具体如下: MongoDB自带了一个JavaScript Shell,所以在其中使用js语法是可以的. Insert操作: 单条插入 v ...

  9. spring和mybatis结合做简单的增删查改系统_springbootamp;amp;vue简单的景点信息管理系统...

    springboot&&vue简单的景点信息管理系统 这两天闲着没有什么事,就根据陈哥的教程,试着写了一个springboot和vue的简单的景点信息管理系统.也就大致实现了最基本的增 ...

最新文章

  1. 手挽手带你学React:四档(上)一步一步学会react-redux (自己写个Redux)
  2. 批量开物料账期的程序
  3. 基于光学导航系统,矩阵变换和3D-2D配准研究
  4. java 配置jmstemplate_SpringBoot集成JmsTemplate(队列模式和主题模式)及xml和JavaConfig配置详解...
  5. 编程让鼠标一直动_华硕、罗技、海盗船无线鼠标选哪个?
  6. C语言课后习题(32)
  7. jeecgboot配置文件_Jeecg-Boot 技术文档
  8. (102)FPGA面试题-如何选择FPGA型号?
  9. 疯狂挂载:Linux连接常用外部设备的方法
  10. JDK源码阅读调试环境搭建
  11. 树莓派能学linux吗,用树莓派能高效学习Linux和Python吗?
  12. 广州大学计算机考研有歧视吗,本科985,考研被调剂去了普通一本广州大学,有必要读吗?...
  13. 015-包、crate、模块
  14. python列表按照字母排序_Python:按字母顺序对列表进行排序/分组
  15. 在Java中产生随机数及掷骰子
  16. oracle ppt讲义,oracle课件.ppt
  17. 国密算法Go语言实现(详解)(九) ——SM2(椭圆曲线公钥密码算法)
  18. 强制结束进程的命令和软件
  19. vb 窗体画面打不开
  20. 第006天:APP的数据存储技术

热门文章

  1. 调整计算机对比度,解决方案:如何调整计算机显示器的亮度和对比度
  2. 宝塔新建站点访问报错
  3. js 的中文转换为拼音
  4. 免费的防病毒公司可以监控您的点击的费用
  5. 基于JAVA网上购物商城计算机毕业设计源码+数据库+lw文档+系统+部署
  6. 想转行,但不知道自己要做什么工作比较好?
  7. 说说华为机试注意点以及三道题的解题思路
  8. Kubernetes 中的 Pod 安全策略
  9. 《月亮与六便士》摘录
  10. 中国做生意的方法彻底变了!你再弄不懂就无钱可赚!