我的第一个mybatis--mybatis的配置和创建

mybatis下载和配置过程

maven仓库:

<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
   <groupId>org.mybatis</groupId>
   <artifactId>mybatis</artifactId>
   <version>3.5.6</version>
</dependency>

下载地址:

Guihub: https://github.com/mybatis/mybatis-3/releases

中文文档:https://mybatis.org/mybatis-3/zh/getting-started.html

新建项目

1.新建一个普通的maven项目

2.删除Maven项目中的src目录

3.在pom.xml中导入maven依赖包

<dependencies>
       <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
       <dependency>
           <groupId>mysql</groupId>
           <artifactId>mysql-connector-java</artifactId>
           <version>8.0.26</version>
       </dependency>

       <!-- 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/junit/junit -->
       <dependency>
           <groupId>junit</groupId>
           <artifactId>junit</artifactId>
           <version>4.13.2</version>
           <scope>test</scope>
       </dependency>


   </dependencies>

4.创建一个模块

.xml文件中的转义符号为amp;

1)编写mybatis的核心配置文件:

在resources中新建一个xml文件: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>
   <!--环境配置:数据库的连接信息
default:必须和某个environment的id值一致,用来告诉mybatis使用哪个数据库的连接信息,也就是访问哪个数据库。
-->
   <environments default="development">
       <!--environment:一个数据库信息的配置,环境
id:一个唯一值,自定义,表示环境的名称。
-->
       <environment id="development">
           <!--transactionManger:mybatis的事务类型
type:JDBC(表示使用JDBC中的connection对象的commit,rollback做事务处理
-->
           <transactionManager type="JDBC"/>
           <!--dataSource:表示数据源,连接数据库的
type:表示数据源类型,pooled表示使用连接池
-->
           <dataSource type="POOLED">
               <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
               <property name="url" value="jdbc:mysql://localhost:3306/mybatis_study?useSSL=true&amp;useUnicode=true&amp;characterEncoding=utf-8"/>
               <property name="username" value="root"/>
               <property name="password" value="123456"/>
           </dataSource>
       </environment>
   </environments>
  <!--mappers:用来指定sql映射文件的位置-->
       <mappers>
           <mapper resource="com/hao/dao/userMapper.xml"/>
       </mappers>
</configuration>
<!--
mybatis的主配置文件:主要定义了数据库的配置信息,sql映射文件的位置
1.约束文件
 <!DOCTYPE configuration
       PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
       "http://mybatis.org/dtd/mybatis-3-config.dtd">
mybatis-3-config.dtd:约束文件的名称
-->

2)编写mybatis工具类

在java文件夹下新建一个utils包,包中新建MybatisUtils类

public class MybatisUtils {
   private static SqlSessionFactory sqlSessionFactory;
   static {
       try {
           //使用Mybatis第一步:获取sqlSessionFactory对象
           String resource = "mybatis-config.xml";
           InputStream inputStream = Resources.getResourceAsStream(resource);
           sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
      } catch (IOException e) {
           e.printStackTrace();
      }
  }
   //既然有了 SqlSessionFactory,顾名思义,我们可以从中获得 SqlSession 的实例。
   // SqlSession 提供了在数据库执行 SQL 命令所需的所有方法。
   public static SqlSession getSquSession(){
       SqlSession sqlSession=sqlSessionFactory.openSession();
       return sqlSession;
  }

}

3.编写代码

  • 实体类

package com.hao.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接口)

public interface userDao {
   List<user> getUserList();
}
  • 接口实现类(由原来的userDaoImpl转变为一个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">
<mapper namespace="com.hao.dao.userDao">
   <!--查询语句-->
   <select id="getUserList" resultType="com.hao.pojo.user">
      select * from mybatis.user
   </select>
</mapper>

<!--
这个xml文件是sql映射文件,用来写sql语句的,mybatis会执行这些sql
1.指定的约束文件:
<!DOCTYPE mapper
       PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
       "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
mybatis-3-mapper.dtd是约束文件的名称,扩展名是是dtd的
2.约束文件作用:定义和限制当前文件中可以使用的标签和属性,以及标签出现的顺序,属性必须符合mybits的要求
3.mapper是当前文件的根标签,是必须的
 namespace是命名空间,是唯一值,可以是自定义的字符串,推荐使用dao接口的全限定方法名称。它的作用是参与识别sql语句的作用。
4.在当前文件中,可以使用特定的标签,表示数据库的特定操作。
<select>:表示执行查询,select语句
<update>:表示更新数据库的操作
<insert>:表示插入语句
<delete>:表示删除语句
5.<select id="getUserList" resultType="com.hao.pojo.user">
       select * from mybatis.user
   </select>
select:表示查询操作
id:你要执行的sql语法的唯一标识,mybatis会使用这个id的值来找到要执行的sql语句,可以自定义,(最好写接口中的方法名称)
resultType:表示结果类型的,是sql语句执行后得到ResultSet,遍历这个ResultSet得到java对象的类型。值写类型的全限定名称。

-->

4.测试

注意点:

junit测试:

记得在pom中配置build

 <build>
       <resources>
           <resource>
               <directory>src/main/resources</directory>
               <includes>
                   <include>**/*.properties</include>
                   <include>**/*.xml</include>
               </includes>
               <filtering>true</filtering>
           </resource>

           <resource>
               <directory>src/main/java</directory>
               <includes>
                   <include>**/*.properties</include>
                   <include>**/*.xml</include>
               </includes>
               <filtering>true</filtering>
           </resource>

       </resources>
   </build>

实现步骤

1.新建student表

2.加入maven的mybatis坐标,mysql驱动的坐标

3.创建实体类Student用来保存表中一行数据

4.创建持久层的Dao接口,定义操作数据库的方法

5.创建一个mybatis使用的配置文件

叫做sql映射文件:写sql语句的,一般一个表一个sql映射文件,这个文件是xml文件

1)这个xml文件写在接口所在的目录中

2)文件名称和接口保持一致

6.创建mybatis的主配置文件:

一个项目就一个主配置文件,主配置文件提供了数据库的连接信息和sql映射文件的位置信息

7.创建使用mybatis类,通过mybatis类访问数据库。

posted @ 2021-10-27 16:59  AMHAO  阅读(122)  评论(0编辑  收藏  举报