如何不基于Spring来使用MyBatis

1、创建数据库和表

create database bootmybatis;

use bootmybatis;

create table `user` (
    `id` int auto_increment,
    `name` varchar(20),
    primary key(`id`)
) default charset=utf8mb4;

insert into user values(1, 'u1');
insert into user values(2, 'u2');

2、整个工程的结构图如下:

3、配置pom文件

<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.github.ralgond</groupId>
	<artifactId>mybatis-learn</artifactId>
	<version>0.0.1-SNAPSHOT</version>

	<dependencies>
		<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis</artifactId>
			<version>3.5.6</version>
		</dependency>
		<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>8.0.21</version>
			<scope>runtime</scope>
		</dependency>

	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>3.0</version>
				<configuration>
					<source>1.8</source>
					<target>1.8</target>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>

4、配置mybatis.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>
	<typeAliases>
		<package name="com.github.ralgond.mybatislearn.domain" />
	</typeAliases>
	
	<environments default="development">
		<environment id="development">
			<transactionManager type="JDBC" />
			<dataSource type="POOLED">
				<property name="driver" value="com.mysql.cj.jdbc.Driver" />
				<property name="url"
					value="jdbc:mysql://localhost:3306/bootmybatis?useUnicode=true&amp;characterEncoding=utf-8&amp;serverTimezone=UTC" />
				<property name="username" value="root" />
				<property name="password" value="root" />
			</dataSource>
		</environment>
	</environments>


	<mappers>
		<mapper
			resource="com/github/ralgond/mybatislearn/UserMapper.xml" />
	</mappers>
</configuration>

5、创建User类

package com.github.ralgond.mybatislearn.domain;

public class User {
	private int id;
	private String name;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	@Override
	public String toString() {
		return "User [id=" + id + ", name=" + name + "]";
	}
}

6、创建UserMapper.xml

<?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="com.github.ralgond.mybatislearn.UserMapper">
	<select id="get" resultType="User">
		select * from user where id = #{id}
		<if test="name!=null">and name like #{name}</if>
	</select>
</mapper>

7、创建UserMapper.java

package com.github.ralgond.mybatislearn;

import com.github.ralgond.mybatislearn.domain.User;

public interface UserMapper {
	public User get(User u);
}

8、创建主启动类

package com.github.ralgond.mybatislearn;

import java.io.IOException;
import java.io.InputStream;

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 com.github.ralgond.mybatislearn.domain.User;

public class Main {

	public static void main(String args[]) throws IOException {
		InputStream inputStream = Resources.getResourceAsStream("mybatis.xml");
		
		SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
		
                User u = new User();
		u.setId(1);
		u.setName("%u%");

		try (SqlSession session = sqlSessionFactory.openSession()) {
			UserMapper userMapper = session.getMapper(UserMapper.class);
			User user = userMapper.get(u);
			System.out.println(user);
		}
	}
}

9、启动主启动类

可以看到结果:
User [id=1, name=u1]

posted @ 2020-12-21 22:32  ralgo  阅读(989)  评论(0)    收藏  举报