Maven+Mybatis项目搭建+查询数据库表记录(调用接口方式)

一、创建Maven项目

        1、选择模板

         2、maven项目构建完成

二、更改pom.xml文件

        1、设置正确的JDK版本,我这里是1.8

        2、删除build标签中的内容

        3、加入Mybatis依赖和Mysql驱动(连接数据库使用)

        4、加入指定文件插件(访问src资源目录下的文件使用)

<?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.study</groupId>
    <artifactId>ch02-mybatis-dao</artifactId>
    <version>1.0-SNAPSHOT</version>

    <name>ch02-mybatis-dao</name>
    <!-- FIXME change it to the project's website -->
    <url>http://www.example.com</url>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    </properties>

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
            <scope>test</scope>
        </dependency>

        <!--mybatis依赖-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.6</version>
        </dependency>

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

    <build>
        <!--指定文件插件-->
        <resources>
            <resource>
                <directory>src/main/java</directory><!--所在的目录-->
                <includes><!--包括目录下的.properties, .xml文件都会扫描到-->
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>false</filtering>
            </resource>
        </resources>
    </build>
</project>

三、创建表的实体类(Student.java)

        1、定义表字段名称

        2、重写get()和set()方法

        3、重写toString()方法

package com.study.domain;

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

    public java.lang.Integer getId() {
        return id;
    }

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

    public String getNamel() {
        return namel;
    }

    public void setNamel(String namel) {
        this.namel = namel;
    }

    public String getInteger() {
        return Integer;
    }

    public void setInteger(String integer) {
        Integer = integer;
    }

    public java.lang.Integer getAge() {
        return age;
    }

    public void setAge(java.lang.Integer age) {
        this.age = age;
    }

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

四、创建接口(StudentDao.java)

package com.study.dao;

import com.study.domain.Student;

import java.util.List;

public interface StudentDao {
    /**
     * 查询表中所有记录
     * @return
     */
    List<Student> selectStudents();
}

五、创建SQL映射文件(StudentDao.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">
<!--首先解析namespace:命名空间,此属性通常用来映射Dao层接口-->
<mapper namespace="com.study.dao.StudentDao">
    <!--id:对应Mapper层接口方法名,要执行的sql语法的唯一标识,Mybatis会使用这个id的值来找到要执行的sql语句
        parameterType:执行输入参数类型
        resultType:表示结果类型,是sql语句执行后得到ResultSet,遍历这个ResultSet得到java对象的类型。
                    值写的类型的全限定名称
     -->
    <select id="selectStudents" resultType="com.study.domain.Student">
        select id,name,email,age from student order by id
    </select>
</mapper>

六、创建Mybatis主配置文件(mybatis.xml)

        1、在main目录下创建resources资源目录

         2、在resource下创建主配置文件

此步骤可直接创建保存的代码模板,详情见

保存代码模板

修改mapper映射文件和数据库配置信息

<?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:控制mybatis全局性为-->
    <settings>
        <!--设置mybatis输出日志-->
        <setting name="logImpl" value="STDOUT_LOGGING"/>
    </settings>

    <!--环境配置:数据库的连接信息
        default:必须和某个environment的id值一样。
        告诉mybatis使用哪个数据库的连接信息。也就是访问哪个数据库
    -->
    <environments default="mydev">
        <!--environment:一个数据库信息的配置,环境
            id:一个唯一值,自定义,表示环境的名称。
        -->
        <environment id="mydev">
            <!--transactionManager:mybatis事务类型
                type:JDBC(表示使用jdbc中的Connection对象的commit。rollback做事务处理)
            -->
            <transactionManager type="JDBC"/>
            <!--dateSource:表示数据源,连接数据库的
                type:表示数据源的类型 POOLED表示使用连接池
            -->
            <dataSource type="POOLED">
                <!--
                    driver,url username,password是固定的,不能自定义。
                -->
                <!--数据库的驱动类名-->
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <!--连接数据库的url字符串-->
                <property name="url" value="jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC"/>
                <!--访问数据库的用户名-->
                <property name="username" value="root"/>
                <!--密码-->
                <property name="password" value="053531"/>
            </dataSource>
        </environment>
    </environments>
    <!--sql mapper(sql映射文件)的位置-->
    <mappers>
        <!--一个mapper标签指定一个文件的位置。
            从类路径开始的路径信息。 target/classes(类路径)
        -->
        <mapper resource="com/study/dao/StudentDao.xml"/>
    </mappers>
</configuration>

七、在study目录下创建工具类(Utils.java)

 

package com.study.utils;

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;

public class Utils {
    private static SqlSessionFactory factory = null;

    /**
     * 静态框,只执行一次
     */
    static {
        String config = "mybatis.xml";
        try {
            InputStream in = Resources.getResourceAsStream(config);
            //使用SqlSessionFactoryBuilder创建SqlSessionFactory对象
            factory = new SqlSessionFactoryBuilder().build(in);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    //获取SqlSession的方法
    public static SqlSession getSqlSession() {
        SqlSession sqlSession = null;
        if (factory != null) {
            //非自动提交事务
            sqlSession = factory.openSession();
        }
        return sqlSession;
    }
}

八、在dao目录下创建实现类(StudentDaoImpl.java)

        1、StudentDaoImpl.java实现类使用Utils.java工具类中的getSqlSession()方法获取SqlSession对象

        2、使用SqlSessin对象中的方法执行sql语句。

package com.study.dao.impl;

import com.study.dao.StudentDao;
import com.study.domain.Student;
import com.study.utils.Utils;
import org.apache.ibatis.session.SqlSession;

import java.util.List;

public class StudentDaoImpl implements StudentDao {
    @Override
    public List<Student> selectStudents() {
        //获取SqlSession对象
        SqlSession sqlSession = Utils.getSqlSession();
        String sqlId = "com.study.dao.StudentDao.selectStudents";
        //执行sql语句,使用SqlSession类的方法
        List<Student> students = sqlSession.selectList(sqlId);
        //关闭
        sqlSession.close();
        return students;
    }
}

九、创建测试类进行单元测试(test.java)

package com.study.test;

import com.study.dao.StudentDao;
import com.study.dao.impl.StudentDaoImpl;
import com.study.domain.Student;
import org.junit.Test;

import java.util.List;

public class test {
    @Test
    public void selectStudents() {
        //使用StudentDaoImpl的实现类创建StudentDao的对象
        StudentDao dao = new StudentDaoImpl();
        //使用StudentDao对象的方法执行sql语句
        List<Student> studentList = dao.selectStudents();
        //循环遍历输出
        for (Student stu : studentList) {
            System.out.println(stu);
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值