MyBatis项目搭建

1.新建个maven项目

2.导入相关依赖

<dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.7</version>
        </dependency>
        <!--与mysql的连接-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.28</version>
        </dependency>
        <!--单元测试-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>

2.编写核心配置文件,可以到mybatis中文网复制模板:mybatis – MyBatis 3 | 入门

mybatis.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "https://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <!--与数据库的连接-->
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/eesy"/>
                <property name="username" value="root"/>
                <property name="password" value="123456"/>
            </dataSource>
        </environment>
    </environments>
    <!--与mapper的映射-->
    <mappers>
        <mapper resource="com/zhou/mapper/UserMapper.xml"/>
    </mappers>
</configuration>

3.编写实体类和Mapper层以及对应的配置文件

package com.zhou.pojo;

public class User {
    private Integer id;
    private String name;
    private String pwd;
    private String perms;
/*这里省略相关的getset方法和toString方法*/
}
package com.zhou.mapper;

import com.zhou.pojo.User;

import java.util.List;

public interface UserMapper {
    List<User> findAll();
}

对应的配置文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zhou.mapper.UserMapper">
    <select id="findAll" resultType="com.zhou.pojo.User">
        select * from user
    </select>
</mapper>

测试

import com.zhou.mapper.UserMapper;
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 org.junit.Test;

import java.io.IOException;
import java.io.InputStream;

public class TestMybatis {

    @Test
    public void test01(){
        InputStream config= null;
        try {
            config = Resources.getResourceAsStream("mybatis.xml");
        } catch (IOException e) {
            e.printStackTrace();
        }
        SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(config);
        SqlSession sqlSession=sqlSessionFactory.openSession();

        UserMapper userMapper=sqlSession.getMapper(UserMapper.class);

        System.out.println(userMapper.findAll());
    }
}

运行之后发现抱错,大概意思就是找不到UserMapper.xml文件

 这时候需要在pom.xml文件里把这类文件给过滤掉

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

再次运行就可以了

与spring进行整合

还是一样的步骤:导jar包,配置文件

导入依赖


        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>2.0.2</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>5.3.21</version>
        </dependency>
        <!--druid的连接池-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.20</version>
        </dependency>
        <!--context-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.3.21</version>
        </dependency>

编写spring 的配置文件applicationContext.xml,并把数据库相关的交给spring管理

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">


    <!-- 1.将mybatis配置环境集成到spring中,交由Spring托管 -->
    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
        <property name="driverClassName" value="com.mysql.cj.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://localhost:3306/eesy"/>
        <property name="username" value="root"/>
        <property name="password" value="123456"/>
    </bean>
    <!-- 2. 将SqlSessionFactory交给Spring托管   -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>          <!-- 加载数据环境   -->
        <!--  绑定mybatis配置文件     -->
        <property name="configLocation" value="classpath:mybatis.xml"/>
        <!--   几乎所有的东西都能在这里面配,完全不需要mybatis的核心配置
               根据个人喜好,个人感觉分开一点维护比较容易
        -->
    </bean>
        <!--  3. 将SqlSession对象的加载交给Spring托管,好像只需要上面那个就够了  -->
<!--    <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
        &lt;!&ndash; 按照mybatis的习俗,通过工厂获得SqlSession会话对象       &ndash;&gt;
        <constructor-arg name="sqlSessionFactory" ref="sqlSessionFactory"/>
    </bean>-->

    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.zhou.mapper"/>
    </bean>


</beans>

mybatis.xml里面就不需要了

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "https://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <!--默认的 日志输出,不需要导包-->
    <settings>
        <setting name="logImpl" value="STDOUT_LOGGING"/>
    </settings>
</configuration>

写个测试文件

    @Test
    public void test03(){
        ApplicationContext context = new ClassPathXmlApplicationContext( "applicationContext.xml" );
        UserMapper userMapper = context.getBean ( "userMapper",UserMapper.class );//这个getBean里的要小写开头
        for (User user : userMapper.findAll()) {
            System.out.println(user);
        }
    }

成功运行

再整合springmvc

导包

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.3.21</version>
        </dependency>

再web.xml里配置dispatchservlet

<?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">


    <!--初始化spring的配置信息,将配置文件关联起来-->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:applicationContext.xml</param-value>
    </context-param>
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

    <!--1.注册DispatcherServlet-->
    <servlet>
        <servlet-name>springmvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!--关联一个springmvc的配置文件:【servlet-name】-servlet.xml-->
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:springmvc-servlet.xml</param-value>
        </init-param>
        <!--启动级别-1-->
        <load-on-startup>1</load-on-startup>
    </servlet>

    <!--/ 匹配所有的请求;(不包括.jsp)-->
    <!--/* 匹配所有的请求;(包括.jsp)-->
    <servlet-mapping>
        <servlet-name>springmvc</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
</web-app>

sprinmvc的配置文件springmvc-servlet.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">

    <context:component-scan base-package="com.zhou">
        <!--配置扫描除了Controller以外的包-->
        <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
    </context:component-scan>
    <!--视图解析器:DispatcherServlet给他的ModelAndView-->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="InternalResourceViewResolver">
        <!--前缀-->
        <property name="prefix" value="/WEB-INF/jsp/"/>
        <!--后缀-->
        <property name="suffix" value=".jsp"/>
    </bean>
</beans>

补充service、controller层

package com.zhou.service;

import com.zhou.mapper.UserMapper;
import com.zhou.pojo.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import javax.annotation.Resources;
import java.util.List;
@Service
public class UserServiceImpl implements UserService{

    @Autowired
    private UserMapper userMapper;

    @Override
    public List<User> findAll() {
        return userMapper.findAll();
    }
}
package com.zhou.service;

import com.zhou.pojo.User;

import java.util.List;

public interface UserService {
    List<User> findAll();
}
package com.zhou.controller;

import com.zhou.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class UserController {
    @Autowired
    private UserService userService;

    @RequestMapping("/findAll")
    public String findAll(Model model){
        model.addAttribute("userlist",userService.findAll());
        return "user";
    }
}

写一下页面

再WEN-INF下新建一个jsp文件夹,再新建一个页面user.jsp

<%--
  Created by IntelliJ IDEA.
  User: 10729
  Date: 2022/10/28
  Time: 17:32
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<a href="findAll">用户</a>
${userlist}
</body>
</html>

在配置一下tomact运行一下,途中遇到一个问题,启动tomact的时候报错了,按照下面的试了一遍就可以了

解决Artifact ssmbuild:war exploded: Error during artifact deployment. See server log for details图解_Escape️的博客-CSDN博客

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
搭建一个MyBatis项目的一般步骤如下: 1. 首先,你需要创建一个Spring Boot项目,并添加相关的依赖,包括Spring Boot、MyBatis Plus、Spring MVC、Shiro和Redis等。 2. 接下来,你需要在src/main/resources目录下创建一个mappers文件夹,用于存放MyBatis映射文件。 3. 创建一个名为mybatis-config.xml的核心配置文件,用于连接数据库。这个文件可以放在src/main/resources目录下。在该文件中,你可以配置数据库相关的信息,如数据库连接信息、数据库驱动、数据库方言等。 4. 在编写MyBatis映射文件时,你需要定义数据库表与Java对象之间的映射关系。可以使用注解或XML方式进行映射。同时,你还需要编写对应的SQL语句,包括查询、插入、更新和删除等操作。 5. 在Spring Boot的配置文件中,你需要配置数据库连接信息、MyBatis相关的配置信息和其他相关配置,如Redis的连接信息和Shiro的配置信息等。 6. 在编写业务逻辑代码时,你可以使用MyBatis Plus提供的便捷方法进行数据库操作,如增删改查等。同时,你还可以使用Spring MVC框架进行web开发,使用Shiro进行权限管理和认证授权,以及使用Redis进行缓存操作等。 通过以上步骤,你就可以搭建一个基于MyBatis的Spring Boot项目了。希望对你有所帮助!<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Java企业报表管理系统源码](https://download.csdn.net/download/m0_55416028/88269629)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [MyBatis搭建](https://blog.csdn.net/HG13542386794/article/details/127967671)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值