Maven依赖
<?xml version="1.0" encoding="UTF-8"?>
<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>org.example</groupId>
<artifactId>cd-mybatis-plus</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<modules>
<module>cd-mybatis-plus-simple</module>
</modules>
<dependencies>
<!-- mybatis-plus插件依赖-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus</artifactId>
<version>3.1.1</version>
</dependency>
<!-- mysql-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
<!-- 连接池-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.11</version>
</dependency>
<!-- 简化bean代码的工具包-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
<version>1.18.4</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.6.4</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>11</source>
<target>11</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
一.Mybatis查询
1.配置mybatis的核心配置文件
2.核心文件加载的映射文件
3.namespace中指向的接口
4.实体类-这里采用的是lombok插件
@Data:用于生成getter和setter
@NoArgsConstructor:用于生成无参构造方法
@AllArgsConstructor:用于生成有参构造方法
二.Mybatis+MP查询
与上面的Mybatis一样的操作,只是在mapper接口的地方继承了BaseMapper这个接口
这个接口中有很多的方法
1.继承BaseMapper接口
package com.cd.mp.simple.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.cd.mp.simple.pojo.User;
import java.util.List;
public interface UserMapper extends BaseMapper<User> {
public List<User> findAll();
}
2.使用MybatisSqlSessionFactoryBuilder构建会话工厂
package com.cd.mp.simple;
import com.baomidou.mybatisplus.core.MybatisSqlSessionFactoryBuilder;
import com.cd.mp.simple.mapper.UserMapper;
import com.cd.mp.simple.pojo.User;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
public class TestMybatisPlus {
@Test
public void TestFindAll() throws IOException {
String config = "mybatis-config.xml";
InputStream resourceAsStream = Resources.getResourceAsStream(config);
SqlSessionFactory sqlSessionFactory = new MybatisSqlSessionFactoryBuilder().build(resourceAsStream);
SqlSession sqlSession = sqlSessionFactory.openSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
//List<User> userList = mapper.findAll();
List<User> userList = mapper.selectList(null);
for(User user:userList){
System.out.println(user);
}
}
}
注意:MP执行的sql中默认表的名字是实体类名字首字母小写,如果数据库中表的名字不是这个就会报这个错。
三.Spring+Mybatis+MP
引入了Spring框架,数据源、构建等工作就交给了Spring管理
1.导入spring需要的一些依赖
2.spring的配置文件
<?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"
xsi:schemaLocation="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.xsd">
<context:property-placeholder location="classpath:*.properties"/>
<!-- 定义数据源-->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" destroy-method="close">
<property name="url" value="${jdbc.url}"/>
<property name="driverClassName" value="${jdbc.driver}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
<property name="maxActive" value="10"/>
<property name="minIdle" value="5"/>
</bean>
<!-- 这里使用MP提供的sqlSessionFactory,完成了spring与Mp的整合-->
<bean id="sqlSessionFactory" class="com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
</bean>
<!-- 扫描mapper接口,使用的依然是Mybatis原生的扫描器-->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.cd.mp.simple.mapper"/>
</bean>
</beans>
3.实体类
4.mapper接口
5.测试
package com.cd.mp.spring;
import com.cd.mp.simple.mapper.UserMapper;
import com.cd.mp.simple.pojo.User;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import java.util.List;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:applicationContect.xml")
public class springTest {
@Autowired
private UserMapper userMapper;
@Test
public void test(){
List<User> userList = userMapper.selectList(null);
for (User user:userList){
System.out.println(user);
}
}
}
四.SpringBoot+Mybatis+MP查询
1.配置yml文件:
2.实体类
package com.cd.mp.pojo;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
@TableName("users")
public class User {
private int id;
private String name;
}
3.Mapper接口
package com.cd.mp.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.cd.mp.pojo.User;
public interface UserMapper extends BaseMapper<User> {
}
4.启动类
package com.cd.mp;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@MapperScan("com.cd.mp.mapper")
@SpringBootApplication
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class,args);
}
}
5.测试
package com.cd.mp;
import com.cd.mp.mapper.UserMapper;
import com.cd.mp.pojo.User;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import java.util.List;
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest
public class TestMybatisSpringBoot {
@Autowired
private UserMapper userMapper;
@Test
public void testSelectList(){
List<User> userList = userMapper.selectList(null);
for (User user:userList){
System.out.println(user);
}
}
}