准备数据库
新建一个mybatis数据库,后面的程序要用到
CREATE DATABASE `mybatis02`;
USE `mybatis`;
CREATE TABLE `user`(
`id` INT(20) NOT NULL,
`name` VARCHAR(30) DEFAULT NULL,
`pwd` VARCHAR(30) DEFAULT NULL,
PRIMARY KEY(`id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8;
INSERT INTO `user`(`id`,`name`,`pwd`)
VALUES (1,'张三','123456'),(2,'李四','zxcvbn'),(3,'王五','123456');
准备mabatis需要的jar包(也叫依赖)
maven仓库:https://mvnrepository.com/
mybatis所需要的依赖
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.4</version>
</dependency>
寻找依赖的过程:打开maven仓库地址,按下图步骤搜索
创建mybatis项目
在IDEA下创建一个空的maven项目,不使用模板
点击finish会直接打开我们刚刚创建的项目
接下来导入依赖,这里我们除了mybatis的依赖,还需要连接数据库的依赖
数据库的依赖需要选择符合自己数据库的版本,这里提供5.1.47版本的依赖
也可以自己在maven仓库中搜索mysql-c
去选择依赖
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
将依赖添加到项目中
在resources目录下创建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>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="org/mybatis/example/BlogMapper.xml"/>
</mappers>
</configuration>
更改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>
<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/mybatis?useSSL=true&useUnicode=true&characterEncoding=utf8"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
</configuration>
至此,mybatis环境已经搭建完成,接下来测试
代码测试
首先导入lombok依赖
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.12</version>
</dependency>
下载lombok插件
在java包下按照下图创建文件
UserMapper
package czx.xupt.mapper;
import czx.xupt.pojo.User;
import java.util.List;
/**
* #Author:槐序二四
* #Time:2020/2/20 13:48
* #Motto:人间荒唐市侩 不如山中作怪🌙.
*/
//操作用户的接口类
public interface UserMapper {
List<User> getUserList();
}
User
package czx.xupt.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* #Author:槐序二四
* #Time:2020/2/20 13:41
* #Motto:人间荒唐市侩 不如山中作怪🌙.
*/
//注解的作用是创建有参无参构造,setget方法,重写一些方法如toString()
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
private int id;
private String name;
private String pwd;
}
MyBatisUtils
package czx.xupt.utils;
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 java.io.IOException;
import java.io.InputStream;
/**
* #Author:槐序二四
* #Time:2020/2/20 13:38
* #Motto:人间荒唐市侩 不如山中作怪🌙.
*/
public class MyBatisUtils {
private static SqlSessionFactory sqlSessionFactory;
static {
try {
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
// 工厂模式
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
} catch (IOException e) {
e.printStackTrace();
}
}
// 获取sqlSession的连接
public static SqlSession getSession() {
return sqlSessionFactory.openSession();
}
}
在resources包下按图创建文件
UserMapper文件:
<?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="czx.xupt.mapper.UserMapper">
<select id="getUserList" resultType="czx.xupt.pojo.User">
select * from user;
</select>
</mapper>
在mybatis-config.xml
中注册UserMapper.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>
<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/mybatis?useSSL=true&useUnicode=true&characterEncoding=utf8"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="czx.xupt.mapper.UserMapper"/>
</mappers>
</configuration>
编写测试类
import czx.xupt.mapper.UserMapper;
import czx.xupt.pojo.User;
import czx.xupt.utils.MyBatisUtils;
import org.apache.ibatis.session.SqlSession;
import java.util.List;
/**
* #Author:槐序二四
* #Time:2020/2/20 14:14
* #Motto:人间荒唐市侩 不如山中作怪🌙.
*/
public class Test {
public static void main(String[] args) {
SqlSession session = MyBatisUtils.getSession();
UserMapper mapper = session.getMapper(UserMapper.class);
List<User> user = mapper.getUserList();
for (User user1 : user) {
System.out.println(user1);
}
}
}