分层思想+mybatis相关的集成

一、分层思想

1、controller层

  接收请求

  (调用service层,返回结果)

  响应结果

2、service层

  业务逻辑判断

3.mapper层

  接口类

  mapper.xml  

  mybatis与数据库的相关操作

4.entity(po、model)

  JavaBean实体

5.util

  工具类

6.test

  测试类/方法

二、mybatis相关集成操作

有些文件可以保存,下次可以直接复制粘贴来使用。

1.mybatis配置文件

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>
<!--
    properties 标签中的配置可以供整个配置文件使用,在任何位置都可以引入其中配置的值。
    properties 标签可以通过子标签 property 标签来配置一些子元素信息,也可以配置外部的动态文件。
-->
    <properties resource="mysql.properties"/>
    <!--  也可以配置 url,但是 url和resource只能存在一个  -->
    <!--  类型别名  -->
<!--    <typeAliases>-->
<!--        <typeAlias type="com.xxxx.entity.User" alias="User"/>-->
<!--    </typeAliases>-->

    <!--  对事物的管理和连接池的配置  -->
    <environments default="development">
        <environment id="development">
            <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>
    </environments>

<!--mappers映射器-->
    <mappers>
         <!--映射文件方式1.一个一个的配置-->
    <!--    <mapper resource="com/xxxx/mapper/UserMapper.xml"/>-->
    <!--    <mapper class="com.xxxx.mapper.UserMapper"/>-->

         <!--映射文件方式2.自动扫描包内的Mapper接口和配置文件-->
        <package name="com.xxxx.mapper"/>
    </mappers>
</configuration>

2.mysql.properties

根据自己的信息进行修改

driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/course?serverTimezone=UTC&useSSL=false&characterEncoding=UTF-8
username=root
password=123456

3.GetSqlSession.java

package com.xxxx.util;

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 GetSqlSession {
    /**
     * 获取SqlSession对象
     */
    public static SqlSession createSqlSession(){
        SqlSessionFactory sqlSessionFactory=null;
        InputStream input=null;
        SqlSession session=null;
        try{
            //获取mybatis的环境配置文件  注意路径
            String resource = "mybatis-config.xml";
            //以流的方式获取resource(mybatis的环境配置文件)
            input = Resources.getResourceAsStream(resource);
            //创建会话工厂
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(input);
            //通过工厂得到SqlSession
            session = sqlSessionFactory.openSession();
            return session;
        }catch(IOException e){
            e.printStackTrace();
            return null;
        }
    }

    //测试:能出结果,就配置完成了
//    public static void main(String[] args) {
//        System.out.println(createSqlSession());
//    }

}

4.UserMapper.java

package com.xxxx.mapper;

import com.xxxx.entity.User;

/**
 *用户接口类
 */
public interface UserMapper {
    public User queryUserByName(String uname);
}

5.UserMapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<!--<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"-->
<!--         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"-->
<!--         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"-->
<!--         version="4.0">-->
<!--</web-app>-->
<!DOCTYPE mapper PUBLIC "-//mybatis.org/DTD Mapper 3.0" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--namespace:命名空间-->
<mapper namespace = "com.xxxx.mapper.UserMapper">
    <!--  id:对应Dao层接口方法名 paraterType:指定输入参数类型  -->
    <!--  userGeneratedKeys="true"把新增加的主键赋值到自己定义的keyProperty(id)中-->
    <select id="queryUserByName" parameterType="String" resultType="com.xxxx.entity.User">
        select * from tb_user where uname = #{uname}
    </select>
</mapper>

 

 6.test(可以建立一个Test.java文件进行测试)

package com.xxxx.test;

import com.xxxx.entity.User;
import com.xxxx.mapper.UserMapper;
import com.xxxx.util.GetSqlSession;
import org.apache.ibatis.session.SqlSession;

public class Test {
    public static void main(String[] args) {
        //获取 SqlSession对象
        SqlSession session = GetSqlSession.createSqlSession();
        //得到对应的Mapper
        UserMapper userMapper = session.getMapper(UserMapper.class);
        //调用方法,返回用户对象
        User user = userMapper.queryUserByName("admin");
        System.out.println(user);
    }
}

如果控制台有输出,就说明配置完成了,可以进行使用了,特别要注意名字要对应,还有数据库的名字也要对应上。

Mybatis可能出现的问题:无法加载mybatis包:java.lang.ClassNotFoundException: org.apache.ibatis.io.Resources

java.lang.ClassNotFoundException: org.apache.ibatis.io.Resources - yuanse - 博客园 (cnblogs.com)

posted on 2022-10-21 00:26  201812  阅读(23)  评论(0编辑  收藏  举报