https://github.com/mybatis/mybatis-3/tree/master
products.sql
create table products
(
product_id int auto_increment comment '产品ID'
primary key,
product_name varchar(100) null comment '产品名称',
brand varchar(50) null comment '品牌',
price decimal(10, 2) null comment '价格',
color varchar(20) null comment '颜色',
storage_capacity varchar(10) null comment '存储容量',
description text null comment '描述'
)
comment '手机产品表';
pom.xml
<?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>com.aistat</groupId>
<artifactId>mybatis_tech</artifactId>
<version>1.0-SNAPSHOT</version>
<!--打包类型-->
<packaging>jar</packaging>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<!--所有依赖-->
<dependencies>
<!-- MySQL驱动-->
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<version>8.0.31</version>
</dependency>
<!-- mybatis依赖-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.15</version>
</dependency>
</dependencies>
</project>
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.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mybatisdb"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<!--当写完mapper之后,应该注册到mappers当中,用于给factray执行-->
<mappers>
<mapper resource="mapper/ProductsMapper.xml"/>
</mappers>
</configuration>
productsMapper.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="mapper.ProductsMapper">
<!--id作为这个sql的唯一id,调用也是通过它-->
<insert id="insertOne" parameterType="java.lang.String">
insert into products (product_name) values (#{name})
</insert>
</mapper>
MybatisDemo
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.InputStream;
public class MybatisDemo {
public static void main(String[] args) throws Exception{
//1. 获取一个 SqlSessionFactoryBuilder
SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
//2. 从 XML 中构建 SqlSessionFactory
// JDBC: info.load(inputstram)
//3.读取配置文件,并加载到sqlSessionFactoryBuilder
InputStream resourceAsStream = Resources.getResourceAsStream("mybatis-config.xml");
SqlSessionFactory factory = sqlSessionFactoryBuilder.build(resourceAsStream);
//4.从 SqlSessionFactory 中获取 SqlSession
//类似于一个开启了事务的手动关闭的connection
SqlSession sqlSession = factory.openSession();
//4.1创建sql语句和参数
/*
*
* 变为了在xml中提前写好
*
*
* 通过 namespeace+id的形式获取了一个带sql的statement
* <mapper namespace="mapper.ProductsMapper">
<!--id作为这个sql的唯一id,调用也是通过它-->
<insert id="insertOne" parameterType="java.lang.String">
insert into products (product_name) values (#{name})
</insert>
</mapper>
* */
//执行语句
/*
* 对应的增删查改的功能
* */
int rows = sqlSession.insert("mapper.ProductsMapper.insertOne","苹果");
//4.3获取结果并解析
System.out.println(rows);
//5.应当手动提交sqlSession
sqlSession.commit();
// sqlSession.close();
//
}
}