一、准备工作
数据库:MySQL 管理工具 Navicat for MySql管理工具
开发工具:Idea 2018.3
服务器:TOMCAT Maven依赖管理
语言: JDK 14
二、创建环境
三、文件配置
1)依赖文件pom.xml 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>com.test.Mybatis_01</groupId>
<artifactId>Mybatis_01</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<!--mybatis jar包资源依赖-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.5</version>
</dependency>
<!--MySQL 数据库驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>6.0.6</version>
</dependency>
<!--通过简单的注解的形式来帮助我们简化消除一些必须有但显得很臃肿的 Java 代码的工具-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.6</version>
<scope>provided</scope>
</dependency>
</dependencies>
</project>
2 ) 创建数据库
3 )创建实体类
package entity;
public class User {
private Integer id;
private String username;
private String password;
public User() {
}
public User(Integer id, String username, String password) {
this.id = id;
this.username = username;
this.password = password;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
4 )创建Mybatis接口映射文件 UserMapper.java
package dao;
import entity.User;
public interface UserMapper {
void saveUser(User user);
User getUser(Integer id);
}
5 ) 创建测试类 TestMyBatis.java
package test;
import dao.UserMapper;
import entity.User;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.io.InputStream;
public class TestMybatis {
public static void main(String[] args) {
/*加载Mybatis配置文件*/
InputStream is=TestMybatis.class.getClassLoader().getResourceAsStream("mybatisConfig.xml");
SqlSessionFactoryBuilder sqlSessionFactoryBuilder=new SqlSessionFactoryBuilder();
SqlSessionFactory factory=sqlSessionFactoryBuilder.build(is);
System.out.println("mybatis");
SqlSession sqlSession=factory.openSession();
String s="dao.UserMapper.saveUser";
User user=new User(1,"张三11","123123");
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
mapper.saveUser(user);
User user1 = mapper.getUser(1);
System.out.println(user1.getUsername());
sqlSession.commit();
sqlSession.close();
}
}
四、 resources 目录下的配置文件
1)mybatisConfig.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>
<!--数据源选择的Id 需要和下方进行对应-->
<environments default="development">
<!--数据源配置 运行环境Id-->
<environment id="development">
<!--配置JDBC事务管理-->
<transactionManager type="JDBC"></transactionManager>
<!-- 配置数据库连接信息 -->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver" />
<property name="url" value="jdbc:mysql://127.0.0.1:3306/user?characterEncoding=UTF-8&serverTimezone=UTC"/>
<property name="username" value="root" />
<property name="password" value="root" />
</dataSource>
</environment>
<!--environment可以写多个,但是选择只能选择一个-->
</environments>
<!--注册UserMapper.xml-->
<mappers>
<!--使用/代替 .进行操作-->
<mapper resource="mapper/userMapper.xml"/>
</mappers>
</configuration>
2 ) mapper文件夹下的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">
<!-- 该文件编写 mybatis 中的 mapper 接口里面的方法提供对应的 sql 语句 -->
<mapper namespace="dao.UserMapper"> <!-- 添加客户 -->
<insert id="saveUser" parameterType="entity.User">
INSERT INTO user(id,username,password) values(null,#{username},#{password})
</insert>
<select id="getUser" parameterType="int" resultType="entity.User">
select * from user where id=#{id}
</select>
</mapper>
五、关于Mybatis的概念
ORM(Object Relational Mapping)
编写程序的时候
- 以面向对象的方式处理数据 保存数据的时候
- 却以关系型数据库的方式存储
ORM解决方案包含下面四个部分
- 在持久化对象上执行基本的增、删、改、查操作
- 对持久化对象提供一种查询语言或者API
- 对象关系映射工具
- 提供与事务对象交互、执行检查、延迟加载以及其他优化功能
Mybatis的优点 :
- 与JDBC相比,减少了50%以上的代码量
- 最简单的持久化框架,小巧并简单易学
- SQL代码从程序代码中彻底分离,可重用
- 提供XML标签,支持编写动态SQL
- 提供映射标签,支持对象与数据库的ORM字段映射
缺点 :
- SQL语句编写工作量大,对开发人员有一定要求
- 数据库移植性差
持续更新。。。。