springboot + mybaties + sqlsession + tomcat 连接数据库写接口

springboot + mybaties + sqlsession + tomcat 连接数据库写接口

前言: 上一篇讲到成功运行了springboot项目, 这次是基于上次对一些文件做些修改即可, 看似简单的修改, 里面充满了许多的逻辑, 希望大家copy代码之余也要好好思考.

项目前提

项目前提: 
	idea编码器
	需要有一定的代码基础, 
	需要安装idea浏览器, 
	安装好mysql数据库, 
	配置好java环境, 
	最好再安装一个navicat

新增

	已经启动好的 springboot 项目
	下载好的 tomcat

创建 包 和 mapper 文件

在这里插入图片描述

// 提示, 鼠标右击需要新建包的位置(文件夹), 右击-->new-->package

User包用来存放用户类, 是根据数据库中已有的信息来写的
表为
在这里插入图片描述

package com.example.entity;
import lombok.Data;
@Data
public class User {
    private Integer userId;// 用户ID
    private String uname;// 用户名称
    private String u_psw;// 用户名称
    private Integer u_role;// 用户角色
    private String u_head;// 用户头像地址
    private String u_autograph;// 用户头像地址
}
// 如果没有用lombok插件, 可以按快捷键生成getter和setter方法
// 用快捷键生成方式为 https://jingyan.baidu.com/article/5d368d1e99a8383f60c05701.html  (百度经验)

User依次新建
     UserMapper接口 (new --> java Class --> interface)
     UserMapper.xml
     UserMapperImpl类

UserMapper接口

package com.example.mapper;
import com.example.entity.User;
import java.util.List;
public interface UserMapper {
    public List<User> getUser();
}

UserMapper.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.example.mapper.UserMapper">
    <select id="getUser" resultType="com.example.entity.User">
        select * from user
    </select>
</mapper>

UserMapperImpl类

package com.example.mapper;
import com.example.entity.User;
import java.util.List;
public interface UserMapper {
    public List<User> getUser();
}

到此所有java文件都已准备好(Test测试文件除外);

配置 spring-dao.xml

①, 新建配置文件 (注意, 在resources目录下新建即可)
在这里插入图片描述

②, 修改配置文件内容

application.properties文件

server.port=8088
server.servlet.context-path=/cat

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>

</configuration>

spring-dao.xml (此文件请仔细阅读, springboot的配置都在其中)

<?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:aop="http://www.springframework.org/schema/aop"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xmlns:util="http://www.springframework.org/schema/util"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
        http://www.springframework.org/schema/tx
        http://www.springframework.org/schema/tx/spring-tx-4.1.xsd
        http://www.springframework.org/schema/aop
        http://www.springframework.org/schema/aop/spring-aop-4.1.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context-4.1.xsd">
    <!--扫描-->
    <context:component-scan base-package="com.example.service"/>

    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://localhost:3306/sihuo"/>
        <property name="username" value="root"/>
        <property name="password" value="123456"/>
    </bean>
    <!--sqlSessionFactory-->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <!-- 还有很多配置<property></property> -->
        <!--绑定mybatis配置文件-->
        <property name="configLocation" value="classpath:mybatis-config.xml"/>
        <!--扫描model包,使用别名-->
        <property name="typeAliasesPackage" value="com.example.entity"/>
        <!--注册Mapper.xm映射器-->
        <property name="mapperLocations" value="classpath:com/example/mapper/UserMapper.xml"/>
        <!-- 配置SQL映射文件信息 -->
<!--        <property name="mapperLocations">-->
<!--            <list>-->
<!--                <value>classpath:com/example/mapper/*.xml</value>-->
<!--            </list>-->
<!--        </property>-->
    </bean>
    <!--SqlSessionTemplate:就是我们使用的sqlSession-->
    <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
        <!--只能使用构造器进行注入,因为没有set方法-->
        <constructor-arg index="0" ref="sqlSessionFactory"/>
    </bean>
    <!-- 利用spring创建上述接口实现类对象,取名为userMapper,并注入上述创建好的sqlSession对象 -->
    <bean id="userMapper" class="com.example.mapper.UserMapperImpl">
        <property name="sqlSession" ref="sqlSession"/>
    </bean>
</beans>

配置tomcat环境

// 网址链接

修改 Simple2Application 中的 main 方法

package com.example;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;

@SpringBootApplication(exclude= {DataSourceAutoConfiguration.class})
public class Simple2Application extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(Simple2Application.class);
    }

    public static void main(String[] args) throws Exception {
        SpringApplication.run(Simple2Application.class, args);
    }

}

新建 Test 测试类, 具体位置可见上图

package com.example.test;

import com.example.entity.User;
import com.example.mapper.UserMapperImpl;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import java.io.IOException;
import java.util.List;

public class Test {
    @org.junit.Test
    public void test() throws IOException {
        ApplicationContext context = new ClassPathXmlApplicationContext("spring-dao.xml");
        UserMapperImpl userMapper = (UserMapperImpl) context.getBean("userMapper");
        List<User> users = userMapper.getUser();
        for (User user : users) {
            System.out.println(user);
        }
    }
}

点击小绿标测试, 数据库中信息

注: 常见问题分析
1, 路径路径路径, 虽然idea强大的class引用功能能很方便的引入所需的类, 但依旧会出现路径问题, 希望大伙仔细排查问题
2, UserMapper.xml 文件的select标签, resultType属性, 路径一定要对
3, 版本之间的兼容问题, 这是所有项目都会存在的问题, 请仔细检查 pom.xml 配置文件

代码地址

// 暂未发布
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值