Mybatis
环境: Jdk1.8
- MySQL :-> MySQL 5.7
- maven 3.6.1
- idea
回顾: JDBC:
MySQL
Java 基础:
Maven
Junit
框架:
配置文件: 最好的方式就是: 看官网;
mybatis3 的中文官方文档, 很全面, 打开有点慢.
http://www.mybatis.org/mybatis-3/zh/sqlmap-xml.html
mybatis 中文官网:
http://www.mybatis.cn/archives/789.html
mybatis 学习官网:
https://mybatis.org/mybatis-3/zh/index.html
1, 简介:
1, 什么是 Mybatis:
mybatis 是一款最优秀
GitHub
如何获取 Mybatis
进入: GitHub :https://github.com/mybatis/mybatis-3/tags
中文文档地址: https://mybatis.org/mybatis-3/zh/index.html
也就是在 maven 里面下载
mybatis pom 下载地址: https://mvnrepository.com/artifact/org.mybatis/mybatis/3.5.2
- <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
- <dependency>
- <groupId>org.mybatis</groupId>
- <artifactId>mybatis</artifactId>
- <version>3.5.2</version>
- </dependency>
- ?
持久化
数据持久化
持久化就是将程序的数据持久状态和瞬时状态转化的过程;
内存: 断电即失
数据库 (Jdbc)io 文件持久化.
生活: 就比如冷藏
为什么需要持久化:
有一些对象, 不能让他丢掉, 如果不让它持久化的话, 就会出现断电即失的意思,
还有一个意思就是: 内存太贵了,
持久层
Dao 层 Server 层, Controller 层.
完成持久化工作的代码快;
层界限十分明显:
为什么需要 Mybatis
帮助程序猿将数据存入到数据库中.
方便
传统的 JDBC 代码太复杂了, 简化, 框架. 自动化.
不用 Mybatis 也可以额, 更容易上手, 技术, 没有高低之分;
优点:
最重要的一点:
使用的人多!
第一个 Mybatis 程序
思路; 搭建环境 -》导入 Mybatis-》编写代码 -》测试
搭建环境
搭建数据库
- INSERT INTO user(id,name,pwd)VALUES
- ?
- INSERT INTO "user" ("id","name","pwd")VALUES
- (1,'大熊','123241'),
- (2,'大 1 熊','123224'),
- (3,'大 2 熊','123224'),
- (4,'大 3 熊','1212324');
这里面的代码有问题
?
新建项目:
1, 新建一个普通的 maven 项目:
2, 删除 src 目录
3, 入门
4, 导入 maven 依赖
创建一个模块
编写 mybatis 的核心配置文件:
在 xml 中 and 就是用 & 表示
创建一个 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> 核心配置文件 -->
- <!---->
- <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=UTF-8"/>
- <property name="username" value="root"/>
- <property name="password" value="522636"/>
- </dataSource>
- </environment>
- </environments>
- </configuration>
编写 mybatis 工具类
代码如下:
作用: 这个工具就是用来获取数据库的一下操作, 也就是一个工具类.
- package com.xiong.utils;
- ?
- import java.io.InputStream;
- import java.io.IOException;
- import org.apache.ibatis.io.Resources;
- import org.apache.ibatis.session.SqlSession;
- import org.apache.ibatis.session.SqlSessionFactory;
- import org.apache.ibatis.session.SqlSessionFactoryBuilder;
- ?
- // 工具类:
- //sqlSessionFactory --》sqlSession
- public class MybatisUtils {
- private static SqlSessionFactory sqlSessionFactory;
- static{
- try {
- // 使用 mybatis 的第一步:
- // 获取 sqlSessionFactory 对象
- String resource = "org/mybatis/example/mybatis-config.xml";
- InputStream inputStream = Resources.getResourceAsStream(resource);
- SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
- } catch (Exception e) {
- e.printStackTrace();
- }
- ?
- }
- // 既然有了 SqlSessionFactory, 顾名思义, 我们可以从中获得 SqlSession 的实例.
- // SqlSession 提供了在数据库执行 SQL 命令所需的所有方法. 你可以通过 SqlSession 实例来直接执行已映射的 SQL 语句. 例如
- ?
- public static SqlSession getSqlSession(){
- SqlSession sqlSession= sqlSessionFactory.openSession();
- return sqlSession;
- }
- ?
- }
- ?
编写代码:
实体类:
- package com.xiong.pojo;
- ?
- // 实体类
- public class User {
- private int id;
- private String name;
- private String pwd;
- ?
- public User() {
- }
- ?
- public User(int id, String name, String pwd) {
- this.id = id;
- this.name = name;
- this.pwd = pwd;
- }
- ?
- 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;
- }
- ?
- public String getPwd() {
- return pwd;
- }
- ?
- public void setPwd(String pwd) {
- this.pwd = pwd;
- }
- ?
- @Override
- public String toString() {
- return "User{" +
- "id=" + id +
- ", name='" + name + '\'' +
- ", pwd='" + pwd + '\'' +
- '}';
- }
- }
- ?
Dao 接口:
- package com.xiong.dao;
- ?
- import com.xiong.pojo.User;
- ?
- import java.util.List;
- ?
- public interface UserDao {
- List<User>getUserList();
- }
- ?
接口实现类: 有原来的 Impl 转换位现在的 mapper 配置文件
主要就是用来执行代码, 并返回对应的值:
<?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">
- <!--namespace== 绑定一个对于的 Dao/mapper 接口 -->
- <mapper namespace="com.xiong.dao.UserDao">
- <!-- select 查询选项 -->
- <select id="getUserList" resultType="com.xiong.pojo.User">
- select * from mybatis.user
- </select>
- </mapper>
测试
- <build>
- <resources>
- <resource>
- ?
- ?
- <directory>src/main/resources</directory><includes>
- <include>*.properties</include><include>*.xml</include>
- ?
- </includes>
- <filtering>true</fi1tering>
- </resource>
- ?
- <resource>
- <directory>src/ main/java</directory>
- <includes>
- ?
- <include>**/*.properties</include><include>**/*.xml</include>
- </includes>
- <filtering>true</fi1tering></resource>
- </resources>
- </build>
- ?
- ?
- ?
- https://www.cnblogs.com/wtao0730/p/13467532.html
来源: http://www.bubuko.com/infodetail-3787485.html