Java学习的第八天:基础部分差最后一节,跳出直接学的mybatis

Posted 九块钱的代码

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java学习的第八天:基础部分差最后一节,跳出直接学的mybatis相关的知识,希望对你有一定的参考价值。

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:

image-20210622180003519

mybatis是一款最优秀

image-20210622180313048

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也可以额,更容易上手,技术,没有高低之分;

优点:

image-20210622183820154

最重要的一点:

使用的人多!

 

第一个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就是用 &amp;表示

创建一个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&amp; useUnicode=true&amp;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>

 

测试

image-20210622212149925

 

 

<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

 

以上是关于Java学习的第八天:基础部分差最后一节,跳出直接学的mybatis的主要内容,如果未能解决你的问题,请参考以下文章

学习数据结构的第八天

Java基础学习第八天

No_16_0229 Java基础学习第八天

java学习--基础知识第八天--笔记

冲刺第八天(补发5.9日)

Python 3 学习的第八天——深浅拷贝以及函数