【Mybatis】Mybatis入门概述及第一个Mybatis实例实现增删改查 【Mybatis】Mybatis接口编程方式实现增删改查

      林炳文Evankaka原创作品。转自https://blog.csdn.net/Evankaka/article/details/45744243

       在【Mybatis】Mybatis入门概述及第一个Mybatis实例实现增删改查 【Mybatis】Mybatis接口编程方式实现增删改查 演示了如何使用XML来操作Mybatis实现CRUD,但是大量的XML配置文件的编写是非常烦人的。因此Mybatis也提供了基于注解的配置方式,下面我们来演示一下使用接口加注解来实现CRUD的的例子。

本文工程免费下载

一、创建数据库、数据表


    
    
  1. use test;
  2. create table t_employeer(
  3. employeer_id int not null primary key AUTO_INCREMENT ,
  4. employeer_name varchar( 50) default null,
  5. employeer_age int default null,
  6. employeer_department varchar( 100) default null,
  7. employeer_worktype varchar( 100) default null
  8. )

二、创建工程

整个工程目录如下:

记得要导入相应的包!

1、雇员对应的类Employeer.java


    
    
  1. package com.mucfc.model;
  2. /**
  3. * 雇员信息类
  4. *@author linbingwen
  5. *@time 2015.5.11
  6. */
  7. public class Employeer {
  8. private Integer employeer_id;
  9. private String employeer_name;
  10. private Integer employeer_age ;
  11. private String employeer_department;
  12. private String employeer_worktype;
  13. public Employeer() {
  14. super();
  15. }
  16. public Integer getEmployeer_id() {
  17. return employeer_id;
  18. }
  19. public void setEmployeer_id(Integer employeer_id) {
  20. this.employeer_id = employeer_id;
  21. }
  22. public String getEmployeer_name() {
  23. return employeer_name;
  24. }
  25. public void setEmployeer_name(String employeer_name) {
  26. this.employeer_name = employeer_name;
  27. }
  28. public Integer getEmployeer_age() {
  29. return employeer_age;
  30. }
  31. public void setEmployeer_age(Integer employeer_age) {
  32. this.employeer_age = employeer_age;
  33. }
  34. public String getEmployeer_department() {
  35. return employeer_department;
  36. }
  37. public void setEmployeer_department(String employeer_department) {
  38. this.employeer_department = employeer_department;
  39. }
  40. public String getEmployeer_worktype() {
  41. return employeer_worktype;
  42. }
  43. public void setEmployeer_worktype(String employeer_worktype) {
  44. this.employeer_worktype = employeer_worktype;
  45. }
  46. @Override
  47. public String toString() {
  48. return "Employeer [employeer_id=" + employeer_id + ", employeer_name="
  49. + employeer_name + ", employeer_age=" + employeer_age
  50. + ", employeer_department=" + employeer_department
  51. + ", employeer_worktype=" + employeer_worktype + "]";
  52. }
  53. }
Employeer.xml文件,用来放置一些映射,删除了Sql语句了


    
    
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  3. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  4. <mapper namespace="com.mucfc.dao.EmployeerMapper">
  5. <!-- 定义数据库字段与实体对象的映射关系 -->
  6. <resultMap type="Employeer" id="employeerResultMap">
  7. <id property="employeer_id" column="employeer_id"/>
  8. <result property="employeer_name" column="employeer_name"/>
  9. <result property="employeer_age" column="employeer_age"/>
  10. <result property="employeer_department" column="employeer_department"/>
  11. <result property="employeer_worktype" column="employeer_worktype"/>
  12. </resultMap>
  13. </mapper>

2、配置mybatis-config.xml


    
    
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE configuration
  3. PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-config.dtd">
  5. <!-- 这是根标签 -->
  6. <configuration>
  7. <!-- 设置别名 -->
  8. <typeAliases>
  9. <typeAlias alias="Employeer" type="com.mucfc.model.Employeer"/>
  10. </typeAliases>
  11. <!-- 配置数据源相关的信息 -->
  12. <environments default="development">
  13. <environment id="development">
  14. <transactionManager type="JDBC" />
  15. <dataSource type="POOLED">
  16. <property name="driver" value="com.mysql.jdbc.Driver"/>
  17. <property name="url" value="jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8"/>
  18. <property name="username" value="root"/>
  19. <property name="password" value="christmas258@"/>
  20. </dataSource>
  21. </environment>
  22. </environments>
  23. <!-- 列出映射文件 -->
  24. <mappers>
  25. <mapper resource="com/mucfc/model/Employeer.xml" />
  26. </mappers>
  27. </configuration>

3、EmployeerMapper.java在添加Sql映射语句,使用注解的方式来实现


    
    
  1. package com.mucfc.dao;
  2. import java.util.List;
  3. import java.util.Map;
  4. import org.apache.ibatis.annotations.Delete;
  5. import org.apache.ibatis.annotations.Insert;
  6. import org.apache.ibatis.annotations.ResultMap;
  7. import org.apache.ibatis.annotations.Select;
  8. import org.apache.ibatis.annotations.SelectKey;
  9. import org.apache.ibatis.annotations.Update;
  10. import com.mucfc.model.Employeer;
  11. /**
  12. * SQL语句映射类
  13. * @author linbingwen
  14. * @time 2015.5.11
  15. */
  16. public interface EmployeerMapper {
  17. @Select( "select * from `t_employeer` where employeer_name like #{employeer_name}")
  18. @ResultMap( "employeerResultMap")
  19. public List<Employeer> findEmployeerByName(String employeer_name);
  20. @Select( "select* from `t_employeer` where employeer_name=#{0} and employeer_department=#{1}")
  21. @ResultMap( "employeerResultMap")
  22. public List<Employeer> findEmployeerByNameandDep(String employeer_name,String employeer_department);
  23. @ResultMap( "employeerResultMap")
  24. @Select( "select* from `t_employeer` where employeer_name=#{key1} and employeer_department=#{key2}")
  25. public List<Employeer> findEmployeerByNameandDep1(Map<String,String> map);
  26. @Select( "select* from `t_employeer` where employeer_id =#{id}")
  27. @ResultMap( "employeerResultMap")
  28. public Employeer findEmployeerByID(int id);
  29. @Insert( " insert into `t_employeer`(employeer_name,employeer_age,employeer_department,employeer_worktype) values(#{employeer_name},#{employeer_age},#{employeer_department},#{employeer_worktype})")
  30. public void addEmployeer(Employeer employeer);
  31. @Delete( "delete from `t_employeer` where employeer_id = #{employeer_id}")
  32. public void deleteEmployeer(int id);
  33. @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} ")
  34. public void updateEmployeer(Employeer employeer);
  35. }
4、测试使用

(1)单参数查找


    
    
  1. /**
  2. * 查找
  3. */
  4. public static Employeer findEmployeerById(int id) {
  5. SqlSession session = null;
  6. Employeer employeer= null;
  7. try {
  8. session = sqlSessionFactory.openSession();
  9. EmployeerMapper employeerMapper=session.getMapper(EmployeerMapper.class);
  10. employeer=employeerMapper.findEmployeerByID(id);
  11. } finally {
  12. session.close();
  13. }
  14. return employeer;
  15. }
对应SQL语句:


    
    
  1. @Select( "select* from `t_employeer` where employeer_id =#{id}")
  2. @ResultMap( "employeerResultMap")
  3. public Employeer findEmployeerByID(int id);

调用:


    
    
  1. System.out.println(findEmployeerById( 10));
  2. System.out.println(findEmployeerById( 11));

结果:


 (2)  添加


    
    
  1. /**
  2. * 增加
  3. */
  4. public static void addEmployeer(Employeer employeer){
  5. SqlSession session = null;
  6. try {
  7. session = sqlSessionFactory.openSession();
  8. EmployeerMapper employeerMapper=session.getMapper(EmployeerMapper.class);
  9. employeerMapper.addEmployeer(employeer);
  10. session.commit() ;
  11. } finally {
  12. session.close();
  13. }
  14. }
对应SQL语句:


    
    
  1. @Insert( " insert into `t_employeer`(employeer_name,employeer_age,employeer_department,employeer_worktype) values(#{employeer_name},#{employeer_age},#{employeer_department},#{employeer_worktype})")
  2. public void addEmployeer(Employeer employeer);

(3)更改


    
    
  1. /**
  2. * 更改
  3. */
  4. public static void updateEmployeer(Employeer employeer){
  5. SqlSession session = null;
  6. try {
  7. session = sqlSessionFactory.openSession();
  8. EmployeerMapper employeerMapper=session.getMapper(EmployeerMapper.class);
  9. employeerMapper.updateEmployeer(employeer);
  10. session.commit() ;
  11. } finally {
  12. session.close();
  13. }
  14. }
对应SQL语句:


    
    
  1. @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} ")
  2. public void updateEmployeer(Employeer employeer);

(4)删除


    
    
  1. /**
  2. * 删除
  3. *
  4. */
  5. public static void deleteEmployeer(int id){
  6. SqlSession session = null;
  7. try {
  8. session = sqlSessionFactory.openSession();
  9. EmployeerMapper employeerMapper=session.getMapper(EmployeerMapper.class);
  10. employeerMapper.deleteEmployeer(id);
  11. session.commit() ;
  12. } finally {
  13. session.close();
  14. }
  15. }

对应SQL语句:


    
    
  1. @Delete( "delete from `t_employeer` where employeer_id = #{employeer_id}")
  2. public void deleteEmployeer(int id);

(5)列表查询


    
    
  1. /**
  2. * 单参数查询列表
  3. */
  4. public static List<Employeer> getEmployeerList(String employeer_name){
  5. SqlSession session = null;
  6. List<Employeer> employeers= null;
  7. try {
  8. session = sqlSessionFactory.openSession();
  9. EmployeerMapper employeerMapper=session.getMapper(EmployeerMapper.class);
  10. employeers = employeerMapper.findEmployeerByName(employeer_name);
  11. session.commit() ;
  12. } finally {
  13. session.close();
  14. }
  15. return employeers;
  16. }
  17. /**
  18. * 多参数查询列表
  19. */
  20. public static List<Employeer> getEmployeerList(String employeer_name,String employeer_department){
  21. SqlSession session = null;
  22. List<Employeer> employeers= null;
  23. try {
  24. session = sqlSessionFactory.openSession();
  25. EmployeerMapper employeerMapper=session.getMapper(EmployeerMapper.class);
  26. employeers = employeerMapper.findEmployeerByNameandDep(employeer_name, employeer_department);
  27. session.commit() ;
  28. } finally {
  29. session.close();
  30. }
  31. return employeers;
  32. }
  33. /**
  34. * 多参数查询列表,使用map
  35. */
  36. public static List<Employeer> getEmployeerList(Map<String, String> map){
  37. SqlSession session = null;
  38. List<Employeer> employeers= null;
  39. try {
  40. session = sqlSessionFactory.openSession();
  41. EmployeerMapper employeerMapper=session.getMapper(EmployeerMapper.class);
  42. employeers = employeerMapper.findEmployeerByNameandDep1(map);
  43. session.commit() ;
  44. } finally {
  45. session.close();
  46. }
  47. return employeers;
  48. }
对应的Sql语句


    
    
  1. @Select( "select * from `t_employeer` where employeer_name like #{employeer_name}")
  2. @ResultMap( "employeerResultMap")
  3. public List<Employeer> findEmployeerByName(String employeer_name);
  4. @Select( "select* from `t_employeer` where employeer_name=#{0} and employeer_department=#{1}")
  5. @ResultMap( "employeerResultMap")
  6. public List<Employeer> findEmployeerByNameandDep(String employeer_name,String employeer_department);
  7. @ResultMap( "employeerResultMap")
  8. @Select( "select* from `t_employeer` where employeer_name=#{key1} and employeer_department=#{key2}")
  9. public List<Employeer> findEmployeerByNameandDep1(Map<String,String> map);
  10. @Select( "select* from `t_employeer` where employeer_id =#{id}")
  11. @ResultMap( "employeerResultMap")
  12. public Employeer findEmployeerByID(int id);

测试:


    
    
  1. System.out.println( "=========================使用单参数查询===========================");
  2. List<Employeer> employeers=getEmployeerList( "张三");
  3. for(Employeer employeer:employeers){
  4. System.out.println(employeer);
  5. }
  6. System.out.println( "=========================使用多单参数查询===========================");
  7. List<Employeer> employeers1=getEmployeerList( "张三", "产品二部");
  8. for(Employeer employeer1:employeers1){
  9. System.out.println(employeer1);
  10. }
  11. System.out.println( "=========================使用多单参数map方式查询===========================");
  12. Map<String, String> map = new HashMap<String, String>();
  13. map.put( "key1", "明明");
  14. map.put( "key2", "财会部");
  15. List<Employeer> employeers2=getEmployeerList(map);
  16. for(Employeer employeer2:employeers2){
  17. System.out.println(employeer2);
  18. }
结果:


本文工程免费下载

      林炳文Evankaka原创作品。转自https://blog.csdn.net/Evankaka/article/details/45744243

       在【Mybatis】Mybatis入门概述及第一个Mybatis实例实现增删改查 【Mybatis】Mybatis接口编程方式实现增删改查 演示了如何使用XML来操作Mybatis实现CRUD,但是大量的XML配置文件的编写是非常烦人的。因此Mybatis也提供了基于注解的配置方式,下面我们来演示一下使用接口加注解来实现CRUD的的例子。

本文工程免费下载

一、创建数据库、数据表


  
  
  1. use test;
  2. create table t_employeer(
  3. employeer_id int not null primary key AUTO_INCREMENT ,
  4. employeer_name varchar( 50) default null,
  5. employeer_age int default null,
  6. employeer_department varchar( 100) default null,
  7. employeer_worktype varchar( 100) default null
  8. )

二、创建工程

整个工程目录如下:

记得要导入相应的包!

1、雇员对应的类Employeer.java


  
  
  1. package com.mucfc.model;
  2. /**
  3. * 雇员信息类
  4. *@author linbingwen
  5. *@time 2015.5.11
  6. */
  7. public class Employeer {
  8. private Integer employeer_id;
  9. private String employeer_name;
  10. private Integer employeer_age ;
  11. private String employeer_department;
  12. private String employeer_worktype;
  13. public Employeer() {
  14. super();
  15. }
  16. public Integer getEmployeer_id() {
  17. return employeer_id;
  18. }
  19. public void setEmployeer_id(Integer employeer_id) {
  20. this.employeer_id = employeer_id;
  21. }
  22. public String getEmployeer_name() {
  23. return employeer_name;
  24. }
  25. public void setEmployeer_name(String employeer_name) {
  26. this.employeer_name = employeer_name;
  27. }
  28. public Integer getEmployeer_age() {
  29. return employeer_age;
  30. }
  31. public void setEmployeer_age(Integer employeer_age) {
  32. this.employeer_age = employeer_age;
  33. }
  34. public String getEmployeer_department() {
  35. return employeer_department;
  36. }
  37. public void setEmployeer_department(String employeer_department) {
  38. this.employeer_department = employeer_department;
  39. }
  40. public String getEmployeer_worktype() {
  41. return employeer_worktype;
  42. }
  43. public void setEmployeer_worktype(String employeer_worktype) {
  44. this.employeer_worktype = employeer_worktype;
  45. }
  46. @Override
  47. public String toString() {
  48. return "Employeer [employeer_id=" + employeer_id + ", employeer_name="
  49. + employeer_name + ", employeer_age=" + employeer_age
  50. + ", employeer_department=" + employeer_department
  51. + ", employeer_worktype=" + employeer_worktype + "]";
  52. }
  53. }
Employeer.xml文件,用来放置一些映射,删除了Sql语句了


  
  
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  3. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  4. <mapper namespace="com.mucfc.dao.EmployeerMapper">
  5. <!-- 定义数据库字段与实体对象的映射关系 -->
  6. <resultMap type="Employeer" id="employeerResultMap">
  7. <id property="employeer_id" column="employeer_id"/>
  8. <result property="employeer_name" column="employeer_name"/>
  9. <result property="employeer_age" column="employeer_age"/>
  10. <result property="employeer_department" column="employeer_department"/>
  11. <result property="employeer_worktype" column="employeer_worktype"/>
  12. </resultMap>
  13. </mapper>

2、配置mybatis-config.xml


  
  
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE configuration
  3. PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-config.dtd">
  5. <!-- 这是根标签 -->
  6. <configuration>
  7. <!-- 设置别名 -->
  8. <typeAliases>
  9. <typeAlias alias="Employeer" type="com.mucfc.model.Employeer"/>
  10. </typeAliases>
  11. <!-- 配置数据源相关的信息 -->
  12. <environments default="development">
  13. <environment id="development">
  14. <transactionManager type="JDBC" />
  15. <dataSource type="POOLED">
  16. <property name="driver" value="com.mysql.jdbc.Driver"/>
  17. <property name="url" value="jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8"/>
  18. <property name="username" value="root"/>
  19. <property name="password" value="christmas258@"/>
  20. </dataSource>
  21. </environment>
  22. </environments>
  23. <!-- 列出映射文件 -->
  24. <mappers>
  25. <mapper resource="com/mucfc/model/Employeer.xml" />
  26. </mappers>
  27. </configuration>

3、EmployeerMapper.java在添加Sql映射语句,使用注解的方式来实现


  
  
  1. package com.mucfc.dao;
  2. import java.util.List;
  3. import java.util.Map;
  4. import org.apache.ibatis.annotations.Delete;
  5. import org.apache.ibatis.annotations.Insert;
  6. import org.apache.ibatis.annotations.ResultMap;
  7. import org.apache.ibatis.annotations.Select;
  8. import org.apache.ibatis.annotations.SelectKey;
  9. import org.apache.ibatis.annotations.Update;
  10. import com.mucfc.model.Employeer;
  11. /**
  12. * SQL语句映射类
  13. * @author linbingwen
  14. * @time 2015.5.11
  15. */
  16. public interface EmployeerMapper {
  17. @Select( "select * from `t_employeer` where employeer_name like #{employeer_name}")
  18. @ResultMap( "employeerResultMap")
  19. public List<Employeer> findEmployeerByName(String employeer_name);
  20. @Select( "select* from `t_employeer` where employeer_name=#{0} and employeer_department=#{1}")
  21. @ResultMap( "employeerResultMap")
  22. public List<Employeer> findEmployeerByNameandDep(String employeer_name,String employeer_department);
  23. @ResultMap( "employeerResultMap")
  24. @Select( "select* from `t_employeer` where employeer_name=#{key1} and employeer_department=#{key2}")
  25. public List<Employeer> findEmployeerByNameandDep1(Map<String,String> map);
  26. @Select( "select* from `t_employeer` where employeer_id =#{id}")
  27. @ResultMap( "employeerResultMap")
  28. public Employeer findEmployeerByID(int id);
  29. @Insert( " insert into `t_employeer`(employeer_name,employeer_age,employeer_department,employeer_worktype) values(#{employeer_name},#{employeer_age},#{employeer_department},#{employeer_worktype})")
  30. public void addEmployeer(Employeer employeer);
  31. @Delete( "delete from `t_employeer` where employeer_id = #{employeer_id}")
  32. public void deleteEmployeer(int id);
  33. @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} ")
  34. public void updateEmployeer(Employeer employeer);
  35. }
4、测试使用

(1)单参数查找


  
  
  1. /**
  2. * 查找
  3. */
  4. public static Employeer findEmployeerById(int id) {
  5. SqlSession session = null;
  6. Employeer employeer= null;
  7. try {
  8. session = sqlSessionFactory.openSession();
  9. EmployeerMapper employeerMapper=session.getMapper(EmployeerMapper.class);
  10. employeer=employeerMapper.findEmployeerByID(id);
  11. } finally {
  12. session.close();
  13. }
  14. return employeer;
  15. }
对应SQL语句:


  
  
  1. @Select( "select* from `t_employeer` where employeer_id =#{id}")
  2. @ResultMap( "employeerResultMap")
  3. public Employeer findEmployeerByID(int id);

调用:


  
  
  1. System.out.println(findEmployeerById( 10));
  2. System.out.println(findEmployeerById( 11));

结果:


 (2)  添加


  
  
  1. /**
  2. * 增加
  3. */
  4. public static void addEmployeer(Employeer employeer){
  5. SqlSession session = null;
  6. try {
  7. session = sqlSessionFactory.openSession();
  8. EmployeerMapper employeerMapper=session.getMapper(EmployeerMapper.class);
  9. employeerMapper.addEmployeer(employeer);
  10. session.commit() ;
  11. } finally {
  12. session.close();
  13. }
  14. }
对应SQL语句:


  
  
  1. @Insert( " insert into `t_employeer`(employeer_name,employeer_age,employeer_department,employeer_worktype) values(#{employeer_name},#{employeer_age},#{employeer_department},#{employeer_worktype})")
  2. public void addEmployeer(Employeer employeer);

(3)更改


  
  
  1. /**
  2. * 更改
  3. */
  4. public static void updateEmployeer(Employeer employeer){
  5. SqlSession session = null;
  6. try {
  7. session = sqlSessionFactory.openSession();
  8. EmployeerMapper employeerMapper=session.getMapper(EmployeerMapper.class);
  9. employeerMapper.updateEmployeer(employeer);
  10. session.commit() ;
  11. } finally {
  12. session.close();
  13. }
  14. }
对应SQL语句:


  
  
  1. @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} ")
  2. public void updateEmployeer(Employeer employeer);

(4)删除


  
  
  1. /**
  2. * 删除
  3. *
  4. */
  5. public static void deleteEmployeer(int id){
  6. SqlSession session = null;
  7. try {
  8. session = sqlSessionFactory.openSession();
  9. EmployeerMapper employeerMapper=session.getMapper(EmployeerMapper.class);
  10. employeerMapper.deleteEmployeer(id);
  11. session.commit() ;
  12. } finally {
  13. session.close();
  14. }
  15. }

对应SQL语句:


  
  
  1. @Delete( "delete from `t_employeer` where employeer_id = #{employeer_id}")
  2. public void deleteEmployeer(int id);

(5)列表查询


  
  
  1. /**
  2. * 单参数查询列表
  3. */
  4. public static List<Employeer> getEmployeerList(String employeer_name){
  5. SqlSession session = null;
  6. List<Employeer> employeers= null;
  7. try {
  8. session = sqlSessionFactory.openSession();
  9. EmployeerMapper employeerMapper=session.getMapper(EmployeerMapper.class);
  10. employeers = employeerMapper.findEmployeerByName(employeer_name);
  11. session.commit() ;
  12. } finally {
  13. session.close();
  14. }
  15. return employeers;
  16. }
  17. /**
  18. * 多参数查询列表
  19. */
  20. public static List<Employeer> getEmployeerList(String employeer_name,String employeer_department){
  21. SqlSession session = null;
  22. List<Employeer> employeers= null;
  23. try {
  24. session = sqlSessionFactory.openSession();
  25. EmployeerMapper employeerMapper=session.getMapper(EmployeerMapper.class);
  26. employeers = employeerMapper.findEmployeerByNameandDep(employeer_name, employeer_department);
  27. session.commit() ;
  28. } finally {
  29. session.close();
  30. }
  31. return employeers;
  32. }
  33. /**
  34. * 多参数查询列表,使用map
  35. */
  36. public static List<Employeer> getEmployeerList(Map<String, String> map){
  37. SqlSession session = null;
  38. List<Employeer> employeers= null;
  39. try {
  40. session = sqlSessionFactory.openSession();
  41. EmployeerMapper employeerMapper=session.getMapper(EmployeerMapper.class);
  42. employeers = employeerMapper.findEmployeerByNameandDep1(map);
  43. session.commit() ;
  44. } finally {
  45. session.close();
  46. }
  47. return employeers;
  48. }
对应的Sql语句


  
  
  1. @Select( "select * from `t_employeer` where employeer_name like #{employeer_name}")
  2. @ResultMap( "employeerResultMap")
  3. public List<Employeer> findEmployeerByName(String employeer_name);
  4. @Select( "select* from `t_employeer` where employeer_name=#{0} and employeer_department=#{1}")
  5. @ResultMap( "employeerResultMap")
  6. public List<Employeer> findEmployeerByNameandDep(String employeer_name,String employeer_department);
  7. @ResultMap( "employeerResultMap")
  8. @Select( "select* from `t_employeer` where employeer_name=#{key1} and employeer_department=#{key2}")
  9. public List<Employeer> findEmployeerByNameandDep1(Map<String,String> map);
  10. @Select( "select* from `t_employeer` where employeer_id =#{id}")
  11. @ResultMap( "employeerResultMap")
  12. public Employeer findEmployeerByID(int id);

测试:


  
  
  1. System.out.println( "=========================使用单参数查询===========================");
  2. List<Employeer> employeers=getEmployeerList( "张三");
  3. for(Employeer employeer:employeers){
  4. System.out.println(employeer);
  5. }
  6. System.out.println( "=========================使用多单参数查询===========================");
  7. List<Employeer> employeers1=getEmployeerList( "张三", "产品二部");
  8. for(Employeer employeer1:employeers1){
  9. System.out.println(employeer1);
  10. }
  11. System.out.println( "=========================使用多单参数map方式查询===========================");
  12. Map<String, String> map = new HashMap<String, String>();
  13. map.put( "key1", "明明");
  14. map.put( "key2", "财会部");
  15. List<Employeer> employeers2=getEmployeerList(map);
  16. for(Employeer employeer2:employeers2){
  17. System.out.println(employeer2);
  18. }
结果:


本文工程免费下载

猜你喜欢

转载自blog.csdn.net/weixin_42581112/article/details/88896325