Mybatis基础:增删改查、模糊查询、多条件查询

简介: Mybatis基础:增删改查、模糊查询、多条件查询http://www.bieryun.com/3132.html 1、新建测试数据库,根据实体类属性创建 2、实体类 [java] view plain copy package com.

Mybatis基础:增删改查、模糊查询、多条件查询http://www.bieryun.com/3132.html


1、新建测试数据库,根据实体类属性创建

2、实体类

[java] view plain copy

  1. package com.entity;
  2.  
  3. /**
  4.  * 数据库实体类
  5.  * Created by lvjun on 2018-04-12.
  6.  */
  7. public class Category {
  8.     private int id;
  9.     private String name;
  10.  
  11.     public int getId() {
  12.         return id;
  13.     }
  14.  
  15.     public void setId(int id) {
  16.         this.id = id;
  17.     }
  18.  
  19.     public String getName() {
  20.         return name;
  21.     }
  22.  
  23.     public void setName(String name) {
  24.         this.name = name;
  25.     }
  26.  
  27.     //显示中文
  28.     @Override
  29.     public String toString() {
  30.         return "Category{" +
  31.                 "id=" + id +
  32.                 ", name='" + name + '\'' +
  33.                 '}';
  34.     }
  35. }

3、配置文件Category.xml

[html] view plain copy

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper
  3.         PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4.         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5.  
  6. <mapper namespace="com.entity">
  7.     <!--列表-->
  8.     <select id="listCategory" resultType="Category">
  9.         select * from   category
  10.     </select>
  11.     <!--删除-->
  12.     <delete id="deleteCategory" parameterType="Category">
  13.         delete from category where id= #{id}
  14.     </delete>
  15.     <!--查询单个-->
  16.     <select id="getCategory" parameterType="_int" resultType="Category">
  17.         select * from   category  where id= #{id}
  18.     </select>
  19.     <!--修改-->
  20.     <update id="updateCategory" parameterType="Category">
  21.         update category set name=#{name} where id=#{id}
  22.     </update>
  23.     <!--添加-->
  24.     <insert id="addCategory" parameterType="Category">
  25.         insert into category ( name ) values (#{name})
  26.     </insert>
  27.     <!--模糊查询-->
  28.     <select id="listCategoryByName" parameterType="string" resultType="Category">
  29.         select * from   category  where name like concat('%',#{0},'%')
  30.     </select>
  31.     <!--多条件查询-->
  32.     <select id="listCategoryByIdAndName" resultType="Category">
  33.         select * from category
  34.         <where>
  35.             <if test="id!=null">
  36.                 and id > #{id}
  37.             </if>
  38.             <if test="name!=null">
  39.                 and name like concat('%',#{name},'%')
  40.             </if>
  41.         </where>
  42.     </select>
  43.  
  44. </mapper>

4、配置文件mybatis-config.xml

[html] view plain copy

  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.     <typeAliases>
  8.         <package name="com.entity"/>
  9.     </typeAliases>
  10.     <environments default="development">
  11.         <environment id="development">
  12.             <transactionManager type="JDBC"/>
  13.             <dataSource type="POOLED">
  14.                 <property name="driver" value="com.mysql.jdbc.Driver"/>
  15.                 <property name="url" value="jdbc:mysql://localhost:3306/school?characterEncoding=UTF-8"/>
  16.                 <property name="username" value="root"/>
  17.                 <property name="password" value="1234"/>
  18.             </dataSource>
  19.         </environment>
  20.     </environments>
  21.     <mappers>
  22.         <mapper resource="Category.xml"/>
  23.     </mappers>
  24. </configuration>

5、测试类

[java] view plain copy

  1. package com.lvjun;
  2.  
  3.  
  4. import com.entity.Category;
  5. import org.apache.ibatis.io.Resources;
  6. import org.apache.ibatis.session.SqlSession;
  7. import org.apache.ibatis.session.SqlSessionFactory;
  8. import org.apache.ibatis.session.SqlSessionFactoryBuilder;
  9.  
  10. import java.io.IOException;
  11. import java.io.InputStream;
  12. import java.util.List;
  13.  
  14.  
  15. /**
  16.  * 查询列表
  17.  * Created by lvjun on 2018-04-12.
  18.  */
  19. public class TestSelectList {
  20.  
  21.     public static void main(String[] args) throws IOException {
  22.         String resource = "mybatis-config.xml";
  23.         InputStream inputStream = Resources.getResourceAsStream(resource);
  24.         SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
  25.         SqlSession session = sqlSessionFactory.openSession();
  26.  
  27.         List<Category> cs = session.selectList("listCategory");
  28.         for (Category c : cs) {
  29.             System.out.println(c.getId()+"  "+c.getName());
  30.          }
  31.  
  32.     }
  33. }

[java] view plain copy

  1. package com.lvjun;
  2.  
  3. import com.entity.Category;
  4. import org.apache.ibatis.io.Resources;
  5. import org.apache.ibatis.session.SqlSession;
  6. import org.apache.ibatis.session.SqlSessionFactory;
  7. import org.apache.ibatis.session.SqlSessionFactoryBuilder;
  8.  
  9. import java.io.IOException;
  10. import java.io.InputStream;
  11. import java.util.List;
  12.  
  13. /**
  14.  * 查询一条记录
  15.  * Created by lvjun on 2018-04-12.
  16.  */
  17. public class TestSelectOne {
  18.  
  19.     public static void main(String[] args) throws IOException {
  20.         String resource = "mybatis-config.xml";
  21.         InputStream inputStream = Resources.getResourceAsStream(resource);
  22.         SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
  23.         SqlSession session = sqlSessionFactory.openSession();
  24.  
  25.         Category c = session.selectOne("getCategory"3);
  26.         System.out.println(c.getId()+"  "+c.getName());
  27.         session.commit();
  28.         session.close();
  29.  
  30.     }
  31.  
  32. }

 

[java] view plain copy

  1. package com.lvjun;
  2.  
  3. import com.entity.Category;
  4. import org.apache.ibatis.io.Resources;
  5. import org.apache.ibatis.session.SqlSession;
  6. import org.apache.ibatis.session.SqlSessionFactory;
  7. import org.apache.ibatis.session.SqlSessionFactoryBuilder;
  8.  
  9. import java.io.IOException;
  10. import java.io.InputStream;
  11. import java.util.List;
  12.  
  13. /**
  14.  * 模糊查询
  15.  * Created by lvjun on 2018-04-12.
  16.  */
  17. public class TestSelectLike {
  18.  
  19.     public static void main(String[] args) throws IOException {
  20.         String resource = "mybatis-config.xml";
  21.         InputStream inputStream = Resources.getResourceAsStream(resource);
  22.         SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
  23.         SqlSession session = sqlSessionFactory.openSession();
  24.  
  25.         List<Category> cs = session.selectList("listCategoryByName""win");
  26.         for (Category c : cs) {
  27.             System.out.println(c.getId()+"  "+c.getName());
  28.         }
  29.  
  30.         session.commit();
  31.         session.close();
  32.  
  33.     }
  34.  
  35. }

[java] view plain copy

  1. package com.lvjun;
  2.  
  3. import java.io.IOException;
  4. import java.io.InputStream;
  5. import java.util.HashMap;
  6. import java.util.List;
  7. import java.util.Map;
  8.  
  9. import com.entity.Category;
  10.  
  11. import org.apache.ibatis.io.Resources;
  12. import org.apache.ibatis.session.SqlSession;
  13. import org.apache.ibatis.session.SqlSessionFactory;
  14. import org.apache.ibatis.session.SqlSessionFactoryBuilder;
  15.  
  16. /**
  17.  * 多条件查询
  18.  * Created by lvjun on 2018-04-12.
  19.  */
  20. public class TestSelectToLike {
  21.     public static void main(String[] args) throws IOException {
  22.         String resource = "mybatis-config.xml";
  23.         InputStream inputStream = Resources.getResourceAsStream(resource);
  24.         SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
  25.         SqlSession session = sqlSessionFactory.openSession();
  26.  
  27.         Map<String, Object> params = new HashMap<>();
  28.         params.put("id"3); //条件查询
  29.         params.put("name""wi");
  30.  
  31.         List<Category> cs = session.selectList("listCategoryByIdAndName", params);
  32.         for (Category c : cs) {
  33.             System.out.println(c.getId()+"  "+c.getName());
  34.         }
  35.  
  36.         session.commit();
  37.         session.close();
  38.  
  39.     }
  40. }

[java] view plain copy

  1. package com.lvjun;
  2.  
  3. import com.entity.Category;
  4. import org.apache.ibatis.io.Resources;
  5. import org.apache.ibatis.session.SqlSession;
  6. import org.apache.ibatis.session.SqlSessionFactory;
  7. import org.apache.ibatis.session.SqlSessionFactoryBuilder;
  8.  
  9. import java.io.IOException;
  10. import java.io.InputStream;
  11. import java.util.List;
  12.  
  13.  
  14. /**
  15.  * 修改记录
  16.  * Created by lvjun on 2018-04-12.
  17.  */
  18. public class TestUpdate {
  19.     public static void main(String[] args) throws IOException {
  20.         String resource = "mybatis-config.xml";
  21.         InputStream inputStream = Resources.getResourceAsStream(resource);
  22.         SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
  23.         SqlSession session = sqlSessionFactory.openSession();
  24.  
  25.         Category c = session.selectOne("getCategory"2);
  26.         c.setName("Android 8");
  27.         session.update("updateCategory", c);
  28.  
  29.         listAll(session);
  30.  
  31.         session.commit();
  32.         session.close();
  33.  
  34.     }
  35.  
  36.     private static void listAll(SqlSession session) {
  37.         List<Category> cs = session.selectList("listCategory");
  38.         for (Category c : cs) {
  39.             System.out.println(c.getId()+"  "+c.getName());
  40.         }
  41.     }
  42. }

 

[java] view plain copy

  1. package com.lvjun;
  2.  
  3. import com.entity.Category;
  4. import org.apache.ibatis.io.Resources;
  5. import org.apache.ibatis.session.SqlSession;
  6. import org.apache.ibatis.session.SqlSessionFactory;
  7. import org.apache.ibatis.session.SqlSessionFactoryBuilder;
  8.  
  9. import java.io.IOException;
  10. import java.io.InputStream;
  11. import java.util.List;
  12.  
  13. /**
  14.  * 插入一条记录
  15.  * Created by lvjun on 2018-04-12.
  16.  */
  17. public class TestInsert {
  18.     public static void main(String[] args) throws IOException {
  19.         String resource = "mybatis-config.xml";
  20.         InputStream inputStream = Resources.getResourceAsStream(resource);
  21.         SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
  22.         SqlSession session = sqlSessionFactory.openSession();
  23.  
  24.         Category c = new Category();
  25.         c.setName("新增加的数据");
  26.         session.insert("addCategory", c);
  27.  
  28.         listAll(session);
  29.  
  30.         session.commit();
  31.         session.close();
  32.  
  33.     }
  34.  
  35.     private static void listAll(SqlSession session) {
  36.         List<Category> cs = session.selectList("listCategory");
  37.         for (Category c : cs) {
  38.             System.out.println(c.getId()+"  "+c.getName());
  39.         }
  40.     }
  41. }

 

[java] view plain copy

  1. package com.lvjun;
  2.  
  3. import com.entity.Category;
  4. import org.apache.ibatis.io.Resources;
  5. import org.apache.ibatis.session.SqlSession;
  6. import org.apache.ibatis.session.SqlSessionFactory;
  7. import org.apache.ibatis.session.SqlSessionFactoryBuilder;
  8.  
  9. import java.io.IOException;
  10. import java.io.InputStream;
  11. import java.util.List;
  12.  
  13. /**
  14.  * 删除一条记录
  15.  * Created by lvjun on 2018-04-12.
  16.  */
  17. public class TestDeleteOne {
  18.     public static void main(String[] args) throws IOException {
  19.         String resource = "mybatis-config.xml";
  20.         InputStream inputStream = Resources.getResourceAsStream(resource);
  21.         SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
  22.         SqlSession session = sqlSessionFactory.openSession();
  23.  
  24.         Category c = new Category();
  25.         c.setId(6);
  26.         session.delete("deleteCategory", c);
  27.  
  28.         listAll(session);
  29.  
  30.         session.commit();
  31.         session.close();
  32.  
  33.     }
  34.  
  35.     private static void listAll(SqlSession session) {
  36.         List<Category> cs = session.selectList("listCategory");
  37.         for (Category c : cs) {
  38.             System.out.println(c.getId()+"  "+c.getName());
  39.         }
  40.     }
  41.  
  42. }


相关文章
|
6月前
|
SQL 存储 Java
基于MyBatis的增删改查操作
基于MyBatis的增删改查操作
46 1
|
3月前
|
SQL XML Java
mybatis复习02,简单的增删改查,@Param注解多个参数,resultType与resultMap的区别,#{}预编译参数
文章介绍了MyBatis的简单增删改查操作,包括创建数据表、实体类、配置文件、Mapper接口及其XML文件,并解释了`#{}`预编译参数和`@Param`注解的使用。同时,还涵盖了resultType与resultMap的区别,并提供了完整的代码实例和测试用例。
mybatis复习02,简单的增删改查,@Param注解多个参数,resultType与resultMap的区别,#{}预编译参数
|
3月前
|
SQL XML Java
mybatis :sqlmapconfig.xml配置 ++++Mapper XML 文件(sql/insert/delete/update/select)(增删改查)用法
当然,这些仅是MyBatis功能的初步介绍。MyBatis还提供了高级特性,如动态SQL、类型处理器、插件等,可以进一步提供对数据库交互的强大支持和灵活性。希望上述内容对您理解MyBatis的基本操作有所帮助。在实际使用中,您可能还需要根据具体的业务要求调整和优化SQL语句和配置。
61 1
|
5月前
|
Java 数据库连接 数据库
mybatis plus 中增删改查及Wrapper的使用
mybatis plus 中增删改查及Wrapper的使用
236 3
|
4月前
|
druid Java 数据库连接
SpringBoot项目整合MybatisPlus持久层框架+Druid数据库连接池,以及实现增删改查功能
SpringBoot项目整合MybatisPlus和Druid数据库连接池,实现基本的增删改查功能。
386 0
|
6月前
|
SQL Java 数据库连接
2万字实操案例之在Springboot框架下基于注解用Mybatis开发实现基础操作MySQL之预编译SQL主键返回增删改查
2万字实操案例之在Springboot框架下基于注解用Mybatis开发实现基础操作MySQL之预编译SQL主键返回增删改查
82 2
MybatisPlus介绍新增用户,根据id查询,引入MybatisPlus的起步依赖,增删改查最简单的写法
MybatisPlus介绍新增用户,根据id查询,引入MybatisPlus的起步依赖,增删改查最简单的写法
|
2月前
|
Java 数据库连接 Maven
mybatis使用一:springboot整合mybatis、mybatis generator,使用逆向工程生成java代码。
这篇文章介绍了如何在Spring Boot项目中整合MyBatis和MyBatis Generator,使用逆向工程来自动生成Java代码,包括实体类、Mapper文件和Example文件,以提高开发效率。
135 2
mybatis使用一:springboot整合mybatis、mybatis generator,使用逆向工程生成java代码。
|
2月前
|
SQL JSON Java
mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
这篇文章介绍了如何在Spring Boot项目中整合MyBatis和PageHelper进行分页操作,并且集成Swagger2来生成API文档,同时定义了统一的数据返回格式和请求模块。
66 1
mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
|
2月前
|
前端开发 Java Apache
Springboot整合shiro,带你学会shiro,入门级别教程,由浅入深,完整代码案例,各位项目想加这个模块的人也可以看这个,又或者不会mybatis-plus的也可以看这个
本文详细讲解了如何整合Apache Shiro与Spring Boot项目,包括数据库准备、项目配置、实体类、Mapper、Service、Controller的创建和配置,以及Shiro的配置和使用。
450 1
Springboot整合shiro,带你学会shiro,入门级别教程,由浅入深,完整代码案例,各位项目想加这个模块的人也可以看这个,又或者不会mybatis-plus的也可以看这个