SpringMvc用mybatis连接Mysql数据库

本文详细介绍了MyBatis在实际项目中的应用流程,包括配置文件的设置、SQL映射文件的编写、实体类的设计以及控制器类的实现。通过具体示例,展示了如何使用MyBatis进行数据库操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对于mybatis的应用我们用4个文件来完成
配置准备(1、conf.xml 2、mapper.xml 3、user.class)
运行测试(1、controller.class)

当然在这之前我们需配好jar包

// https://mvnrepository.com/artifact/org.mybatis/mybatis-spring
    compile group: 'org.mybatis', name: 'mybatis-spring', version: '1.1.1'
// https://mvnrepository.com/artifact/mysql/mysql-connector-java
    compile group: 'mysql', name: 'mysql-connector-java', version: '8.0.15'

  1. 第一步,首先我们创建一个conf.xml文件,在这里我们会写上连接数据库需要的各项相关数据
    和mapper的配置告诉程序去mapper.xml寻找对应需要的sql语句
<?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>
    <!-- 和spring整合后 environments配置将废除-->
    <environments default="development">
        <environment id="development">
            <!-- 使用jdbc事务管理-->
            <transactionManager type="JDBC" />
            <!-- 数据库连接池-->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver" />
                <property name="url" value="jdbc:mysql://localhost:3306/user?serverTimezone=UTC" />
                <property name="username" value="root" />
                <property name="password" value="123456" />
            </dataSource>
        </environment>
    </environments>

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

</configuration>
  1. 第二步,我们来配置mapper.xml文件,根据上面的说法,我们会在这里存放各种sql语句,但是我当然没把增删查改全弄进来,就弄了个最基本的查询
<?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="test">
    <!-- 根据id获取用户信息 -->
    <select id="findUserById" parameterType="int" resultType="com.sziit.Mapper.User">
		select * from users where id = #{id}

	</select>
</mapper>
  1. 第三步,user.class文件的创建,为什么要创建user类呢?因为不创建的话,我们从数据库每获取一个数据,我们就需要创建一个变量去存放,太麻烦了,所以我们可以创建一个对应数据库的user类,把我们获取到的所有数据都放到类里去,这样我们每次都只需新建一个类的对象,就足以盛放每次从数据库获取到的多个数据
package com.sziit.Mapper;

public class User {
    int id;
    String name;

    public String getName() {
        return name;
    }

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

    public int getId() {
        return id;
    }

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

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

  1. 第4步,需要的东西都准备好了,是时候开始操作了,因为这是个SpringMvc麽,所以就把运行代码放controller里了
package com.sziit.springmvc.controller;

import com.sziit.Mapper.User;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;

@Controller
public class zhangController {
    @RequestMapping("hello")
    public String hello(Model model){


        String resource ="D:/IT/IdeaProjects/zhang1/src/main/resources/conf.xml";
        System.out.printf(resource);
        /**
         * 然后把这个配置文件转成InputStream给SqlSessionFactory
         */
        InputStream is = null;
        try {
            is = new FileInputStream(resource);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }

        //构建sqlSession的工厂

        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is);
        SqlSession session = sessionFactory.openSession();
        /**
         * 映射sql的标识字符串,
         * com.knight.main.mapperr是mapper.xml文件中mapper标签的namespace属性的值,
         * name是select标签的id属性值,通过select标签的id属性值就可以找到要执行的SQL
         */
        String statement = "test.findUserById";//映射sql的标识字符串
        //执行查询返回结果
        User user1 = session.selectOne(statement, 2);
        System.out.println(user1.toString());
        model.addAttribute("u1",user1);
        return "hello";
    }

}

5.虽然接下来运行就完事了,不过还是放几张图以供参考,
对,这个jsp和MVC的事可以看这里 https://blog.youkuaiyun.com/weixin_41571981/article/details/87971272
不过如果你不是用mvc你把controller里的代码微调一下就行,怎么调就自己想去(很简单的)。
放图吧:
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值