SSM整合之登录注册

article/2025/10/28 1:32:35

一、概述

        本文以一个登录注册的小功能作为示例,对SSM框架做一个整合

二、SSM整合

        SSM框架是指Spring、SpringMVC和Mybatis,SpringMVC是包含在Spring中的,因此SSM框架整合核心是将Mybatis整合到Spring中。

2.1 DAO

        1. 创建如下的数据库表格:

CREATE TABLE `user` (`id` int NOT NULL AUTO_INCREMENT,`user_name` varchar(255) NOT NULL,`user_password` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,`create_time` datetime NOT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8;

        2. 创建对应表格的User类:

/*** 对应数据库user表格的User对象*/
@Data
@AllArgsConstructor //生成一个包含所有参数的构造器
@NoArgsConstructor //生成一个没有参数的构造器
public class User {private int id;private String userName;private String userPassword;private Date createTime;
}

        3. 创建Mybatis配置文件mybatis-config.xml:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><!--配置日志--><settings><setting name="logImpl" value="STDOUT_LOGGING"/></settings><typeAliases><package name="com.wyf.dao"/></typeAliases><mappers><package name="com.wyf.dao" /></mappers></configuration>

        mybatis-config.xml是Mybatis的主配置文件,一般若是单独使用Mybatis的话,应该在该配置文件中使用环境配置对数据库连接进行配置,但是,我们整合SSM框架,可以将数据库连接的相关配置交给Spring来做,甚至都可以不要mybatis-config.xml文件。

        4. 编写UserMapper接口

public interface UserMapper {/*** 新增用户** @param sysUser* @return 返回影响行数*/int insert(User sysUser);/*** 通过ID查询用户* @param id* @return*/User selectById(int id);/*** 查询符合登录条件的用户数* @return*/long selectUser(User sysUser);
}

        示例程序只有登录操作以及注册操作,因此此处为了简单,只提供了插入和查询功能。如果有其他需求,可以添加。

        5. 编写UserMapper接口对应的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.wyf.dao.UserMapper"><resultMap id="userMap" type="com.wyf.dao.User"><id property="id" column="id"/><result property="userName" column="user_name"/><result property="userPassword" column="user_password"/><result property="createTime" column="create_time" jdbcType="TIMESTAMP"/></resultMap><!-- select查询 --><select id="selectById" resultMap="userMap">select * from  `user` where id = #{id}</select><!-- insert数据插入 --><insert id="insert">insert into `user`(user_name, user_password, create_time)values(#{userName}, #{userPassword}, #{createTime, jdbcType=TIMESTAMP})</insert><select id="selectUser" resultType="long">SELECT COUNT(*) from `user` WHERE user_name=#{userName} AND user_password=#{userPassword};</select></mapper>

        6. 编写spring-dao.xml文件,将Mybatis框架整合到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"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"><!-- spring整合Mybatis,使用c3p0数据库连接池 --><!-- 配置整合mybatis --><!-- 1. 关联数据库文件 --><context:property-placeholder location="classpath:database.properties"/><!-- C3P0数据库连接池 --><!-- 配置数据源(C3P0) --><bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"><!-- 属性注入 --><property name="driverClass" value="${jdbc.driver}"></property><property name="jdbcUrl" value="${jdbc.url}"></property><property name="user" value="${jdbc.username}"></property><property name="password" value="${jdbc.password}"></property><!-- C3P0其他属性设置 --><!--连接池中保留的最小连接数。 --><property name="minPoolSize" value="10" /><!--连接池中保留的最大连接数。Default: 15 --><property name="maxPoolSize" value="30" /><!-- 关闭链接后不自动commit --><property name="autoCommitOnClose" value="false"/><!--最大空闲时间,1800秒内未使用则连接被丢弃。若为0则永不丢弃。Default: 0 --><property name="maxIdleTime" value="1800" /><!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default: 3 --><property name="acquireIncrement" value="3" /><property name="maxStatements" value="1000" /><property name="initialPoolSize" value="10" /><!--每60秒检查所有连接池中的空闲连接。Default: 0 --><property name="idleConnectionTestPeriod" value="60" /><!--定义在从数据库获取新连接失败后重复尝试的次数。Default: 30 --><property name="acquireRetryAttempts" value="30" /><property name="breakAfterAcquireFailure" value="true" /><property name="testConnectionOnCheckout" value="false" /></bean><!-- 3. 配置sqlSessionFactory对象 --><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><!-- 注入数据库连接池 --><property name="dataSource" ref="dataSource"/><!-- 配置Mybatis的配置文件:mybatis-config.xml --><property name="configLocation" value="classpath:mybatis-config.xml"/></bean><!-- SqlSessionTemplate:就是我们使用的sqlSession --><bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate"><!-- 只能使用构造器注入SqlSessionFactory,因为它没有set方法 --><constructor-arg index="0" ref="sqlSessionFactory"/></bean><!-- 注入UserMapperImpl数据操作类 --><bean id="userMapper" class="com.wyf.dao.UserMapperImpl"><property name="sqlSession" ref="sqlSession"/></bean></beans>

        我们在使用Mybatis框架的时候,必然要使用SqlSessionFactory以及SqlSession。Mybatis框架整合到Spring中,该对象由MyBatis-Spring使用 SqlSessionFactoryBean 来创建,该对象需要注入一个数据源datasource,本文使用的是c3p0数据源,如上所示。

        在Mybatis中,SqlSession相当于一个数据库连接,用以实现对数据库的各种操作,而Mybatis整合到Spring中,由MyBatis-Spring提供了SqlSessionTemplate代替SqlSession,如上文xml文件中的配置所示。上文中配置了一个新的UserMapper接口实现类UserMapperImpl,如下所示:

public class UserMapperImpl implements UserMapper{private SqlSessionTemplate sqlSession;public void setSqlSession(SqlSessionTemplate sqlSession) {this.sqlSession = sqlSession;}@Overridepublic int insert(User sysUser) {UserMapper mapper = sqlSession.getMapper(UserMapper.class);return mapper.insert(sysUser);}@Overridepublic User selectById(int id) {UserMapper mapper = sqlSession.getMapper(UserMapper.class);return mapper.selectById(id);}@Overridepublic long selectUser(User sysUser) {UserMapper mapper = sqlSession.getMapper(UserMapper.class);return mapper.selectUser(sysUser);}
}

        首先,该实现类注入了SqlSessionTemplate,用以执行接口定义的各项数据库操作,此实现类在单独使用Mybatis框架的时候是不需要的。此处在将Mybatis整合到Spring的过程中,就必须多创建一个UserMapperImpl类,用以执行具体的数据库操作,相比于原本的Mybatis框架,多创建的该类还是略显繁琐一些,还好,Spring提供了DAO包扫描,可以实现动态将DAO接口注入到Spring容器中,如下所示,但本文还是采用了上述的实现类的方式。

    <!-- 配置扫描dao包,动态实现Dao接口注入到spring容器中--><!--解释 :https://www.cnblogs.com/jpfss/p/7799806.html--><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><!-- 注入sqlSessionFactory --><property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/><!-- 给出需要扫描的Dao接口的包 --><property name="basePackage" value="com.wyf.dao"/></bean>

2.2 Service

        1. 编写接口

public interface UserService {/*** 新增用户** @param sysUser* @return 返回影响行数*/int insert(User sysUser);/*** 通过ID查询用户* @param id* @return*/User selectById(int id);/*** 查询符合登录条件的用户数* @return*/long selectUser(User sysUser);
}

        因为业务很简单,只是一个登录和注册,因此此处的Service功能也很简单,就是数据查询和数据插入。

        2. 编写业务实现类

public class UserServiceImpl implements UserService{private UserMapperImpl usermapper;public void setUsermapper(UserMapperImpl usermapper) {this.usermapper = usermapper;}@Overridepublic int insert(User sysUser) {return usermapper.insert(sysUser);}@Overridepublic User selectById(int id) {return usermapper.selectById(id);}@Overridepublic long selectUser(User sysUser) {return usermapper.selectUser(sysUser);}}

        可以看到,在此业务实现类中,注入了UserMapperImpl类,UserMapperImpl类属于DAO层,Service调用该对象实现对数据库的操作。

        3. 编写spring-service.xml文件,用以配置service层编写的类。

<?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/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttps://www.springframework.org/schema/context/spring-context.xsd"><!--Spring整合service层 --><!-- 扫描service相关的bean --><context:component-scan base-package="com.wyf.service"/><!-- 将UserServiceImpl注入到IOC容器 --><bean id="UserServiceImpl" class="com.wyf.service.UserServiceImpl"><property name="usermapper" ref="userMapper"/></bean><!-- 配置事务管理器 --><bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><!-- 注入数据库连接池 --><property name="dataSource" ref="dataSource" /></bean></beans>

2.3 SpringMVC

        1. 前端控制器 

        springmvc的核心是DispatcherServlet前端控制器,所有的请求都要经过DispatcherServlet然后通过适配器分发给合适的Controller去调用Service业务来进行处理,因此DispatcherServlet在Springmvc中有着举足轻重的低位,本质上,DispatcherServlet其实是一个Servlet,下面是在web.xml中配置DispatcherServlet:

<?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"><!--DispatcherServlet--><servlet><servlet-name>DispatcherServlet</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:applicationConfig.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>DispatcherServlet</servlet-name><url-pattern>/</url-pattern></servlet-mapping><!--encodingFilter--><filter><filter-name>encodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>utf-8</param-value></init-param></filter><filter-mapping><filter-name>encodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping><!--Session过期时间--><session-config><session-timeout>15</session-timeout></session-config></web-app>

         可以看到,上述的web.xml文件就配置了一个DispatcherServlet,这也就是springmvc的优势所在,所有的请求都给了这个servlet,由该servlet通过适配器找到合适的controller来调用相应的业务层代码去进行处理。这样代码清晰明了,配置也更加简洁方便。

        2. 编写Controller

@Controller
public class UserController {@Autowired@Qualifier("UserServiceImpl")private UserService userService;@GetMapping("/login")public String getLogin(Model model) {return "Login";}@PostMapping("/register")public String getRegister(Model model){return "Register";}@PostMapping("/registerUser")public String registerGetLogin(@RequestParam("name") String name,@RequestParam("pwd") String password, Model model){User user = new User();user.setUserName(name);user.setUserPassword(password);user.setCreateTime(new Date());int res = userService.insert(user);return "Login";}@PostMapping("/login")public String loginGetMain(@RequestParam("name") String name,@RequestParam("pwd") String password, Model model){User user = new User();user.setUserName(name);user.setUserPassword(password);long res = userService.selectUser(user);if(res>0){//登录成功model.addAttribute("message","登录成功!");return "Login";}else{model.addAttribute("message","用户名或密码错误,请重试!");return "Login";}}}

        如上所示,所有的请求经过DispatcherServlet之后,在通过适配器找到合适的Controller去进行处理。上述请求使用了RestFul风格。

        3. spring-mvc.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:mvc="http://www.springframework.org/schema/mvc"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/mvchttps://www.springframework.org/schema/mvc/spring-mvc.xsdhttp://www.springframework.org/schema/contexthttps://www.springframework.org/schema/context/spring-context.xsd"><!-- 配置SpringMVC --><!-- 1.开启SpringMVC注解驱动 --><mvc:annotation-driven /><!-- 2.静态资源默认servlet配置--><mvc:default-servlet-handler/><!-- 3.配置jsp 显示ViewResolver视图解析器 --><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="viewClass" value="org.springframework.web.servlet.view.JstlView" /><property name="prefix" value="/WEB-INF/jsp/" /><property name="suffix" value=".jsp" /></bean><!-- 4.扫描web相关的bean --><context:component-scan base-package="com.wyf.controller" /></beans>

        至此,相关的代码以及配置文件编写完毕,回顾一下会发现,springmvc帮我们做了太多的事情,我们真正要写的就是Controller调用Service层的业务代码以及Service调用DAO层进行数据库操作的相关代码。可以直观的感受到springmvc是如何让我们更关注于业务逻辑本身。为了将上述几个Spring配置文件融合在一起,编写applicationConfig.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"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"><import resource="spring-dao.xml"/><import resource="spring-service.xml"/><import resource="spring-mvc.xml"/></beans>

2.4 View

        表现层很简单,就两个页面,一个登录页面,一个注册页面。如下所示:

 登录页面

<%@ page isELIgnored="false"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><style>.h_title{position: relative;display: inline-block;}.box_div{width: 100%;}.box_main{position: absolute;top:50%;left: 50%;transform: translate(-50%,-50%);width: 60%;min-width: 700px;box-shadow: 0 0 30px #322f2f;}.box_main_right{width: 50%;height:450px;float: left;position: relative;}.box_form{position: absolute;top:50%;left: 50%;transform: translate(-50%,-50%);}</style><title>Title</title>
</head>
<body style="text-align: center"><div class="box_div"><div class="box_main"><div style="width:50%;height:450px;float: left;background: blueviolet"><br><h2 class="h_title">智&nbsp;能&nbsp;仪&nbsp;表&nbsp;设&nbsp;备&nbsp;管&nbsp;理</h2></div><div class="box_main_right"><div class="box_form"><div style="width: 300px"><h3 style="float: left">登&nbsp;&nbsp;录</h3><c:if test="${not empty message}"><div style="width: 100%;height: 40px;clear: left;margin-bottom: 15px;background: rgba(252,158,158,0.3);border-radius: 5px"><P style="font-size: 17px;color: #8a1717;line-height: 40px;">${message}</P></div></c:if></div><form action="login.do"  method="post" style="width: 300px;"><input type="text" name="name" value="" placeholder="用户名" style="width: 100%;height: 40px;border-radius: 5px"><br><br><input type="password" name="pwd" value="" placeholder="密码" style="width: 100%;height: 40px;border-radius: 5px"><br><br><input type="submit"value="登&nbsp;&nbsp;录" name="login" style="width: 100%;height: 35px;background: orange;color: white;font-size: 17px;border-radius: 5px"></form><form action="register" method="post" style="width: 300px"><input type="submit" value="新用户注册" style="width: 100%;height: 35px;background: deepskyblue;color:white;font-size: 17px;border-radius: 5px"></form></div></div></div>
</div></body>
</html>

 注册页面:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><style>.h_title{position: relative;display: inline-block;}.box_div{width: 100%;}.box_main{position: absolute;top:50%;left: 50%;transform: translate(-50%,-50%);width: 60%;min-width: 700px;box-shadow: 0 0 30px #322f2f;}.box_main_right{width: 50%;height:450px;float: left;position: relative;}.box_form{position: absolute;top:50%;left: 50%;transform: translate(-50%,-50%);}</style><title>Title</title>
</head>
<body style="text-align: center"><div class="box_div"><div class="box_main"><div style="width:50%;height:450px;float: left;background: blueviolet"><br><h2 class="h_title">智&nbsp;能&nbsp;仪&nbsp;表&nbsp;设&nbsp;备&nbsp;管&nbsp;理</h2></div><div class="box_main_right"><div class="box_form"><div style="width: 300px"><h3 style="float: left">注&nbsp;&nbsp;册</h3></div><form action="registerUser"  method="post" style="width: 300px;"><input type="text" name="name" value="" placeholder="用户名" style="width: 100%;height: 40px;border-radius: 5px"><br><br><input type="password" name="pwd" value="" placeholder="密码" style="width: 100%;height: 40px;border-radius: 5px"><br><br><input type="submit"value="立即注册" name="login" style="width: 100%;height: 35px;background: orange;color: white;font-size: 17px;border-radius: 5px"></form><form action="login" style="width: 300px"><input type="submit" value="返回登录" style="width: 100%;height: 35px;background: deepskyblue;color:white;font-size: 17px;border-radius: 5px"></form></div></div></div>
</div></body>
</html>

三、结束

        本文主要以一个登录注册的小案例介绍了SSM框架的整合,登录注册也可以看作是一般项目开发的起点,可以在其基础上进行其他内容的开发。

        SSM框架整合源代码:https://download.csdn.net/download/sssxlxwbwz/85090259


http://chatgpt.dhexx.cn/article/kLhS63uE.shtml

相关文章

遇见狂神说SSM整合项目梳理详解

在跟B站的狂神学习的时候有一模块是SSM整合的一个小项目&#xff0c;虽然spring、springmvc、mybatis我都学过&#xff0c;但是整合到一起还是思路不清晰&#xff0c;就很懵&#xff0c;整合的一个小项目&#xff0c;让我知道了什么叫配置地狱&#xff0c;就是熟悉又陌生的感觉…

SSM整合Quartz

Quartz 1.整合1.1 mysql中创建quartz表1.2 添加quartz依赖1.3 添加quartz.properties与数据库关联1.4 编写quartzConfig文件1.4.1 quartz的初始化配置1.4.2 创建job 实例工厂 1.5 编写定时任务1.5.1 静态方式编写定时任务1.5.2 动态方式编写定时任务 2.quartz2.1 quartz概念2.2…

SSM 整合

目录 第六章 SSM 整合导图第一节 Spring 和 Mybatis 整合1、思路2、Mybatis-Spring技术3、总体 SSM 整合所需依赖4、配置数据源①创建 jdbc.properties②加入日志配置文件③创建 Spring 配置文件④创建 junit 测试类 5、配置 SqlSessionFactoryBean①创建 Mybatis 全局配置文件…

SSM整合Vue

昨日知识点总结 今日总结 文章目录 一.昨日知识 1.表单验证2.上传组件3.时间插件4.ElementUI简介 二.今日总结 1.页面静态化 通过html页面&#xff0c;制作展示所有制作添加页面 制作修改页面以及批量删除制作分页制作多条件查询 一、昨日重点复习 1.表单验证 在vue中使用rule…

SSM整合过程梳理

文章目录 前言一.SSM整合流程二.整合配置2.1添加依赖2.2创建项目包结构2.3创建SpringConfig配置类2.4创建JdbcConfig配置类2.5创建MybatisConfig配置类2.6创建jdbc.properties2.7创建SpringMVC配置类2.8创建Web项目入口配置类 三.功能模块3.1创建模型类3.2编写Dao接口3.3编写Se…

ssm整合详解

最近做项目用到了ssm,虽然以前用过ssm但这段时间发现&#xff0c;用过不代表就会了&#xff0c;即使以前用过&#xff0c;但现在要搭一个ssm框架不看教程还是很难&#xff0c;最基本的maven仓库需要哪些坐标都搞不清楚&#xff0c;所以今天打算写篇博客梳理一下。 一.基础梳理…

SSM整合分页插件

目录 一.环境配置 1.分页插件依赖 2.在Mybatis里面配置的内容 二.使用分页插件 1.在ServiceImpl层开启分页插件&#xff08;即查询数据库前开启&#xff09; 2.控制器方法 3.jsp页面进行整理 4.效果 5. 样式 6.常用的数据说明 一.环境配置 1.分页插件依赖 <depend…

SSM整合总结

这几天学完spring&#xff0c;springMVC&#xff0c;mybatis后&#xff0c;这两天试着去整合ssm&#xff0c;整合过程并不顺利&#xff0c;一是基础知识有的忘了&#xff0c;细节不能把握住&#xff0c;造成各种报错.看了各种视频&#xff0c;翻阅各种文章&#xff0c;多多少少…

SSM整合shiro

1.完成ssm整合shiro 企业中老项目还在使用ssm框架。 准备数据库 数据结构 张三 -user:query user:add user:update user:delete 李四 ---》user:query user:add user:update 王五-----》user:query user:export 搭建ssm的环境 &#xff08;1&#xff09;创建一个maven的web工…

SSM整合

1、ssm整合原理 SSM框架是spring MVC &#xff0c;spring和mybatis框架的整合&#xff0c;是标准的MVC模式&#xff0c;将整个系统划分为表现层&#xff0c;controller层&#xff0c;service层&#xff0c;DAO层四层。 使用spring MVC负责请求的转发和视图管理 spring实现业…

SSM整合,手把手教程,详解思路讲解

前言 一&#xff0c;工程创建 1.新建Maven项目&#xff0c;项目架构增加web支持 2.Maven本地仓库配置 3.集成Tomcat&#xff0c;搭建web环境 二&#xff0c;导入依赖 三&#xff0c;配置文件编写 1.web环境配置文件 2.spring整合环境配置文件 2.1 controller层(spring…

SSM整合完整流程讲解

目录 一、SSM整合说明 1、各个框架担任的角色 2、两个Ioc容器的创建顺序 1&#xff09;SpringMVC中IOC容器的创建时间 2&#xff09;Spring中IOC容器的创建时间 3&#xff09;Spring提供的监听器ContextLoaderListener 二、SSM整合步骤 1、准备工作 1&#xff09;导入…

Unresolved Dependencies

在Android Studio的开发中&#xff0c;在软件中集成了ButterKnife插件&#xff0c;另外需要集成ButterKnife的jar包。因为本地没有现成的&#xff0c;所以在module的build.gradle文件中添加了如下代码&#xff1a; compile com.jakewharton:butterknife:7.0.1 结果报了如下错误…

Pycharm 出现Unresolved reference ‘‘ 错误的解决方法 --- 亲测有效

在用Pycharm写项目的时候的时候碰到一个很无语的问题 路径明明没有问题&#xff0c;运行也没有出错&#xff0c;但就是爆红&#xff0c;逼死强迫症啊。。。 多方查找最后解决了。步骤如下&#xff1a; File–>Settings–>Project Structure–>找到问题目录–>Sou…

PyCharm错误提示- Unresolved reference 的解决

使用PyCharm加载工程时,发生解析错误 原本这个工程是可以通过 python manange.py runserver 方式运行的,说明文件是正常的。关键在于PyCharm环境的问题。 查找了半天,安装一些网上的解决方式,尝试了以下几种方式: 1,修改忽略文件 File –>Settings –>Editor –…

Goland 提示 Unresolved reference 错误解决

之前一直正常的项目&#xff0c;莫名其妙的 database/sql 包下的方法、结构体等等IDE都无法识别&#xff0c;出现一堆Unresolved reference错误提示&#xff0c;但包导入路径可以正确定位&#xff0c;而且项目运行也正常&#xff0c;其他包都正常&#xff0c;另一个项目下同样使…

error LNK2019: unresolved external symbol

error LNK2019: unresolved external symbol&#xff1a;链接器找不到所需要的东西 此时ctrlF7进行编译&#xff0c;没有报错&#xff0c;在这个程序中调用的是Log函数&#xff0c;我们实际上并没有这个函数&#xff0c; 我们有的函数是Logr函数&#xff0c;在编译过程中编译器…

Unresolved reference ‘matplotlib‘解决方法

首先打开最左边的file-settings 然后点这个添加 找想添加的 最后点最下面的install Package 就可以啦

快速解决Pycharm中unresolved reference

在用Pycharm时老是报红&#xff0c;虽然不影响运行&#xff0c;但是真的很不好看。 如下&#xff1a; 根据网上大部分教程设置source root&#xff0c;设置之后还是没有变化。 然后我发现了这个东西&#xff0c;真的是立即生效&#xff0c;就是不知道改了之后有没有什么后遗症…

解决unresolved symbol _RamfuncsLoadEnd

问题描述 移植大佬的文件之后&#xff0c;发现报错 问题解决 添加F28335.cmd到工程中