mybatis-plus的配置和基本的增删改

 第一步 配置数据库和xml

1.数据库配置:根据类的字段创建数据库

CREATE DATABASE mp;

USE mp;

CREATE TABLE tbl_employee(
   id INT(11) PRIMARY KEY AUTO_INCREMENT,
   last_name VARCHAR(50),
   email VARCHAR(50),
   gender CHAR(1),
   age INT
);

2.applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:context="http://www.springframework.org/schema/context"
   xmlns:tx="http://www.springframework.org/schema/tx"
   xmlns:mybatis-spring="http://mybatis.org/schema/mybatis-spring"
   xsi:schemaLocation="http://mybatis.org/schema/mybatis-spring http://mybatis.org/schema/mybatis-spring-1.2.xsd
      http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
      http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
      http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd">
   
   
   <!-- 数据源 -->
   <context:property-placeholder location="classpath:db.properties"/>
   <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
      <property name="driverClass" value="${jdbc.driver}"></property>
      <property name="jdbcUrl" value="${jdbc.url}"></property>
      <property name="user" value="${jdbc.username}"></property>
      <property name="password" value="${jdbc.password}"></property>
   </bean>
   
   <!-- 事务管理器 -->
   <bean id="dataSourceTransactionManager" 
      class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
      <property name="dataSource" ref="dataSource"></property>
   </bean>
   <!-- 基于注解的事务管理 -->
   <tx:annotation-driven transaction-manager="dataSourceTransactionManager"/>
   
   
   <!--  配置SqlSessionFactoryBean 
      Mybatis提供的: org.mybatis.spring.SqlSessionFactoryBean
      MP提供的:com.baomidou.mybatisplus.spring.MybatisSqlSessionFactoryBean
    -->
   <bean id="sqlSessionFactoryBean" class="com.baomidou.mybatisplus.spring.MybatisSqlSessionFactoryBean">
      <!-- 数据源 -->
      <property name="dataSource" ref="dataSource"></property>
      <property name="configLocation" value="classpath:mybatis-config.xml"></property>
      <!-- 别名处理 -->
      <property name="typeAliasesPackage" value="com.atguigu.mp.beans"></property>      
      
      <!-- 注入全局MP策略配置 -->
      <property name="globalConfig" ref="globalConfiguration"></property>
   </bean>
   
   <!-- 定义MybatisPlus的全局策略配置-->
   <bean id ="globalConfiguration" class="com.baomidou.mybatisplus.entity.GlobalConfiguration">
      <!-- 在2.3版本以后,dbColumnUnderline 默认值就是true -->
      <property name="dbColumnUnderline" value="true"></property>
      
      <!-- 全局的主键策略 -->
      <property name="idType" value="0"></property>
      
      <!-- 全局的表前缀策略配置 -->
      <property name="tablePrefix" value="tbl_"></property>
   </bean>
   

3.log4j.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
 
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
 
 <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
   <param name="Encoding" value="UTF-8" />
   <layout class="org.apache.log4j.PatternLayout">
    <param name="ConversionPattern" value="%-5p %d{MM-dd HH:mm:ss,SSS} %m  (%F:%L) \n" />
   </layout>
 </appender>
 <logger name="java.sql">
   <level value="debug" />
 </logger>
 <logger name="org.apache.ibatis">
   <level value="info" />
 </logger>
 <root>
   <level value="debug" />
   <appender-ref ref="STDOUT" />
 </root>
</log4j:configuration>

4.db.properties

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mp
jdbc.username=root
jdbc.password=123456

5.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>
   
</configuration>

6.所需的java包

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.atguigu.mp</groupId>
  <artifactId>mp01</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  
  <dependencies>
      <!-- mp依赖
          mybatisPlus 会自动的维护Mybatis 以及MyBatis-spring相关的依赖
       -->
      <dependency>
          <groupId>com.baomidou</groupId>
          <artifactId>mybatis-plus</artifactId>
          <version>2.3</version>
      </dependency>
<!--json包-->
     <dependency>
        <groupId>net.sf.json-lib</groupId>
        <artifactId>json-lib</artifactId>
        <version>2.4</version>
        <classifier>jdk15</classifier>
     </dependency>

      <!--junit -->
      <dependency>
         <groupId>junit</groupId>
         <artifactId>junit</artifactId>
         <version>4.9</version>
      </dependency>
      <!-- log4j -->
      <dependency>
         <groupId>log4j</groupId>
         <artifactId>log4j</artifactId>
         <version>1.2.17</version>
      </dependency>
      <!-- c3p0 -->
      <dependency>
         <groupId>com.mchange</groupId>
         <artifactId>c3p0</artifactId>
         <version>0.9.5.2</version>
      </dependency>
      <!-- mysql -->
      <dependency>
         <groupId>mysql</groupId>
         <artifactId>mysql-connector-java</artifactId>
         <version>5.1.37</version>
      </dependency>
      <!-- spring -->
      <dependency>
         <groupId>org.springframework</groupId>
         <artifactId>spring-context</artifactId>
         <version>4.3.10.RELEASE</version>
      </dependency>
      <dependency>
         <groupId>org.springframework</groupId>
         <artifactId>spring-orm</artifactId>
         <version>4.3.10.RELEASE</version>
      </dependency>
  
  </dependencies>
  
  
</project>

第二步配置基础类:Employee,这个你可以自主选择自己类的各种属性,但是要和数据库的对应表的字段属性对应

此处需要关联数据表 

@TableName(value="tbl_employee")

第三部配置映射EmployeeMapper

package com.atguigu.mp.mapper;

import com.atguigu.mp.beans.Employee;
import com.baomidou.mybatisplus.mapper.BaseMapper;

/**
 * Mapper接口
 *     
 * 基于Mybatis:  在Mapper接口中编写CRUD相关的方法  提供Mapper接口所对应的SQL映射文件 以及 方法对应的SQL语句. 
 * 
 * 基于MP:  让XxxMapper接口继承 BaseMapper接口即可.
 *           BaseMapper<T> : 泛型指定的就是当前Mapper接口所操作的实体类类型 
 * 
 */
public interface EmployeeMapper extends BaseMapper<Employee> {
    //   Integer  insertEmployee(Employee employee );
   //   <insert useGeneratedKeys="true" keyProperty="id" > SQL...</insert>
}

最后调用方法:你可以用main方法调用或者写一个测试类test、

package com.atguigu.mp.test;

import java.sql.Connection;
import java.util.*;

import javax.sql.DataSource;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.atguigu.mp.beans.Employee;
import com.atguigu.mp.mapper.EmployeeMapper;
import com.baomidou.mybatisplus.mapper.Condition;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.plugins.Page;

public class TestMP {
    private ApplicationContext ioc =
            new ClassPathXmlApplicationContext("applicationContext.xml");

    private EmployeeMapper employeeMapper =
            ioc.getBean("employeeMapper", EmployeeMapper.class);

    /*
     * 这是插入操作
     * */
    @Test
    public void name() {
        Employee employee = new Employee(1, "jhon", "[email protected]", 1, 21, 300.0);
        Integer rusult = employeeMapper.insertAllColumn(employee);
        System.out.println(rusult);
    }


    /**
     * 条件构造器  删除操作
     */
    @Test
    public void testEntityWrapperDelete() {

        employeeMapper.delete(new EntityWrapper<Employee>().eq("last_name", "Jerry").eq("gender", 0)


        );
    }

    /**
     * 条件构造器 修改操作
     */
    @Test
    public void updata() {
        Employee employee = new Employee(14, "Marry", "2669555013qq.com", 1, 21, 300.0);
        employeeMapper.update(employee, new EntityWrapper<Employee>().eq("last_name", "jhon"));
    }
    /*
     * 条件构造器 插入
     * */

    @Test
    public void chaxun() {
        int a = 1;
        System.out.println(a);
        List<Employee> emps = employeeMapper.selectPage(new Page<Employee>(a, 30),
                new EntityWrapper<Employee>()
                        .between("age", 18, 50)
                        .eq("gender", 1)

        );

        int i = 0;
        for (Employee attribute : emps) {
            i = i + 1;
            System.out.println(i + ":" + attribute.toString());
        }

    }

    @Test
    public void nicae() {
        Employee employee = new Employee();

        int size = employeeMapper.selectCount(null);
        System.out.println(size);

        employee.setId(3);
        employee.setAge(20);

        employeeMapper.update(employee, new EntityWrapper<Employee>().eq("gender", "1"));


    }

    @Test
    public void dashed33() {
        ;
        Map<String, Object> cm = new HashMap<String, Object>();
        cm.put("last_name", "Tom");
        cm.put("gender", 1);

        List<Employee> emp = employeeMapper.selectByMap(cm);

        JSONArray json = JSONArray.fromObject(emp);

//获得第二个array结果
        JSONObject o = (JSONObject) json.get(2);

        String vehiclecode = o.get("lastName").toString();//获得属性值
        System.out.println(vehiclecode);

    }
}

源码里面数据库是错误的,直接用上方给的数据库 复制粘贴就好

源码下载:https://download.csdn.net/download/weixin_40864484/10560424

猜你喜欢

转载自blog.csdn.net/weixin_40864484/article/details/81181878