ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

小白大学生学习MyBatis(一)

2021-06-30 18:30:39  阅读:108  来源: 互联网

标签:xml java 大学生 mybatis 小白 MyBatis com public String


MyBatis(一)

  1. MyBatis官网
    https://mybatis.org/mybatis-3/zh/index.html(有需要的可以进去看一下)
    2.在Maven的pom文件中加入依赖(Maven 有后续文章)
    有两种方式
    方式一:
    在https://mvnrepository.com/网站中可以获取到
    https://mvnrepository.com/artifact/org.mybatis/mybatis
    方式二:
    修改版本号即可
 <dependency>
   <groupId>org.mybatis</groupId>
   <artifactId>mybatis</artifactId>
   <version>x.x.x</version>
  </dependency>

需要的依赖还有

<!--mysql驱动-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.17</version>
        </dependency>
<!--junit单元测试-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>provided</scope>
        </dependency>
 
        <!--log4j依赖-->
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>

需要准备的还有
mybatis-mapper.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="">
  <select id="" resultType="">

  </select>
</mapper>

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>

    <settings>
        <setting name="logImpl" value="STDOUT_LOGGING"/>
    </settings>

    <environments default="online">

        <!--唯一值 id  -->
        <environment id="mydev">
            <!-- 数据源 -->
            <transactionManager type="JDBC"/>
            <!-- 连接池 -->
            <dataSource type="POOLED">
                <property name="driver" value="${driver}"/>
                <property name="url" value="${url}"/>
                <property name="username" value="${username}"/>
                <property name="password" value="${password}"/>
            </dataSource>
        </environment>


        <environment id="online">
            <!-- 数据源 -->
            <transactionManager type="JDBC"/>
            <!-- 连接池 -->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/student?serverTimezone=UTC&amp; characterEncoding=utf-8"/>
                <property name="username" value="root"/>
                <property name="password" value="123456"/>
            </dataSource>
        </environment>

    </environments>

    <mappers>
        <mapper resource="mapper/StudentMapper.xml"/>
    </mappers>

</configuration>

其中 jdbc.properties配置参考为(这个先不用)

jdbc.driverClass=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis
jdbc.username=root
jdbc.password=123456

需要在pom文件中的加入的 下载插件和 扫描文件所需代码

<build>
  <resources>
   <resource>
  	<directory>src/main/java</directory><!-- 所在的目录 -->

  	<includes>
  	<!-- 包括目录下的.properties.xml 文件都会扫描 -->
  	 <include>**/*.properties</include>
  	 <include>**/*.xml</include>
  	</includes>
  	
  	<filtering>false</filtering>
  	</resource>

  </resources>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.1</version>
        <configuration>
         <sorce>1.8</sorce>
         <target>1.8</target>
        </configuration>
      </plugin>
    </plugins>
  </build>

3.测试
测试代码如下

 //访问mybatis读取student数据
        //1.定义mybatis主配置文件名称,从类路径的根开始(target/classes)
        String config = "mybatis.xml";
        //2.读取这个config表示的文件
        InputStream in = Resources.getResourceAsStream(config);
        //3.创建SqlSessionFactoryBuilder
        SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
        //4.创建SqlSessionFactory对象
        SqlSessionFactory factory = builder.build(in);
        //5.获取SqlSession对象,从SqlSessionFactory中获取SqlSession
        SqlSession sqlSession = factory.openSession();
        //6.指定要执行的sql语句的标识,sql映射文件中的namespace + "."+标签的id值
        String sqlId = "com.sdyu.dao.StudentDao"+"."+"findAll";
        //7.执行sql语句,通过sqlId找到语句
        List<Student> studentList = sqlSession.selectList(sqlId);
        //8.输出结果
        for (Student stu : studentList) {
            System.out.println("账户:"+stu.getName()+"年龄:"+stu.getAge());
        }

        //9.关闭SqlSession对象
        sqlSession.close();

在这里插入图片描述

最终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.sdyu</groupId>
  <artifactId>mybatis</artifactId>
  <version>1.0-SNAPSHOT</version>

  <name>mybatis</name>
  <!-- FIXME change it to the project's website -->

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
    <!--mysql驱动-->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>8.0.17</version>
    </dependency>
    <!--junit单元测试-->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.5.6</version>
    </dependency>
  </dependencies>

  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.1</version>
          <configuration>
            <target>1.8</target>
          </configuration>
        </plugin>

      </plugins>
    </pluginManagement>

    <resources>
      <resource>
        <directory>src/main/java</directory><!-- 所在的目录 -->

        <includes>
          <!-- 包括目录下的.properties.xml 文件都会扫描 -->
          <include>**/*.properties</include>
          <include>**/*.xml</include>
        </includes>

        <filtering>false</filtering>
      </resource>
    </resources>
  </build>
</project>

mybatis.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>

    <settings>
        <setting name="logImpl" value="STDOUT_LOGGING"/>
    </settings>

    <environments default="online">

        <!--唯一值 id  -->
        <environment id="mydev">
            <!-- 数据源 -->
            <transactionManager type="JDBC"/>
            <!-- 连接池 -->
            <dataSource type="POOLED">
                <property name="driver" value="${driver}"/>
                <property name="url" value="${url}"/>
                <property name="username" value="${username}"/>
                <property name="password" value="${password}"/>
            </dataSource>
        </environment>


        <environment id="online">
            <!-- 数据源 -->
            <transactionManager type="JDBC"/>
            <!-- 连接池 -->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/student?serverTimezone=UTC&amp; characterEncoding=utf-8"/>
                <property name="username" value="root"/>
                <property name="password" value="123456"/>
            </dataSource>
        </environment>

    </environments>

    <mappers>
        <mapper resource="mapper/StudentMapper.xml"/>
    </mappers>

</configuration>

StudentMapper.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="com.sdyu.dao.StudentDao">
    <select id="findAll" resultType="com.sdyu.bean.Student">
        SELECT id,name,age FROM student
  </select>
</mapper>

AppTest

```xml
package com.sdyu;
import com.sdyu.bean.Student;
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.IOException;
import java.io.InputStream;
import java.util.List;

public class AppTest 
{
    public static void main(String[] args) throws IOException {
        //访问mybatis读取student数据
        //1.定义mybatis主配置文件名称,从类路径的根开始(target/classes)
        String config = "mybatis.xml";
        //2.读取这个config表示的文件
        InputStream in = Resources.getResourceAsStream(config);
        //3.创建SqlSessionFactoryBuilder
        SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
        //4.创建SqlSessionFactory对象
        SqlSessionFactory factory = builder.build(in);
        //5.获取SqlSession对象,从SqlSessionFactory中获取SqlSession
        SqlSession sqlSession = factory.openSession();
        //6.指定要执行的sql语句的标识,sql映射文件中的namespace + "."+标签的id值
        String sqlId = "com.sdyu.dao.StudentDao"+"."+"findAll";
        //7.执行sql语句,通过sqlId找到语句
        List<Student> studentList = sqlSession.selectList(sqlId);
        //8.输出结果
        for (Student stu : studentList) {
            System.out.println("账户:"+stu.getName()+"年龄:"+stu.getAge());
        }

        //9.关闭SqlSession对象
        sqlSession.close();
    }

}
StudentDao.java
```java
package com.sdyu.dao;

import com.sdyu.bean.Student;

import java.util.List;

public interface StudentDao {
    List<Student> findAll();
}

Student.java

package com.sdyu.bean;

public class Student {
    private Integer id;
    private String name;
    private String age;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAge() {
        return age;
    }

    public void setAge(String age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "Student{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", age='" + age + '\'' +
                '}';
    }
}

目录结构:
在这里插入图片描述
想一起学习的可以联系我
喜欢的可以打赏我 加油加油!!!!

标签:xml,java,大学生,mybatis,小白,MyBatis,com,public,String
来源: https://blog.csdn.net/hjs_75187712/article/details/118344894

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有