简单的登录验证案例
本案例是基于spring+mybatis实现的简单登录验证案例的实现:
具体实现步骤看代码
-
环境搭建
在pom.xml中导入依赖,以及解决静态资源导出的问题
<dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.3.22 </version> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.24</version> </dependency> <!-- https://mvnrepository.com/artifact/commons-logging/commons-logging --> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.2</version> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.24</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.13.2</version> <scope>test</scope> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.10</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.28</version> </dependency> </dependencies> <build> <resources> <resource> <directory>src/main/resources</directory> <includes> <include>**/*.properties</include> <include>**/*.xml</include> </includes> <filtering>false</filtering> </resource> <resource> <directory>src/main/java</directory> <includes> <include>**/*.properties</include> <include>**/*.xml</include> </includes> <filtering>false</filtering> </resource> </resources> </build>
applicationContext.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 https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd"> <!--将指定类装配给Spring,让spring创建HelloSpring对象的实例--> <context:component-scan base-package="com.hua"/> <context:annotation-config/> </beans>
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 resource="db.properties"/> <settings> <setting name="logImpl" value="STDOUT_LOGGING"/> <setting name="mapUnderscoreToCamelCase" value="true"/> </settings> <typeAliases> <package name="com.hua.pojo"/> </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> <mapper class="com.hua.dao.UserMapper"/> </mappers> </configuration>
-
编写MyBatis的工具类用来获取SqlSession
public class MybatisUtil { private static SqlSessionFactory sqlSessionFactory; static { try { String resource="mybatis-config.xml"; InputStream inputStream= Resources.getResourceAsStream(resource); sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream); } catch (IOException e) { e.printStackTrace(); } } public static SqlSession getSqlSession() { return sqlSessionFactory.openSession(); } }
-
编写实体类(我这里导入了lombok的依赖,可以直接用注解)
@Data @AllArgsConstructor @NoArgsConstructor public class User { private int id; private String name; private int age; }
-
dao层
UserDao接口
public interface UserDao { public boolean login(String name,String password); }
UserDao接口实现类
@Repository public class UserDaoImpl implements UserDao { @Override public boolean login(String name, String password) { SqlSession sqlSession = MybatisUtil.getSqlSession(); UserMapper mapper = sqlSession.getMapper(UserMapper.class); User user = mapper.findUserByName(name); String name1 = user.getName(); String pwd = user.getPwd(); if(name.equals(name1)&&password.equals(pwd)){ return true; } return false; } }
UserMapper接口(操作数据库)
public interface UserMapper { String findNameByName(@Param("name") String name); User findUserByName(@Param("name")String name); }
UserMapper.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!--configuration核心配置文件--> <mapper namespace="com.hua.dao.UserMapper"> <select id="findNameByName" parameterType="string" resultType="string"> select name from user where name=#{name} </select> <select id="findUserByName" resultType="user" parameterType="string"> select * from user where name=#{name} </select> </mapper>
-
service层
UserService
public interface UserService { public boolean login(String name,String password); }
UserServiceImpl
@Service public class UserServiceImpl implements UserService { @Resource private UserDao userDao; @Override public boolean login(String name, String password) { return userDao.login(name, password); } }
-
测试类
@Test public void TestSpring(){ ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml"); UserService userService = ac.getBean("userServiceImpl", UserService.class); boolean flag = userService.login("花花", "666"); if(flag){ System.out.println("登录成功"); }else { System.out.println("登录失败"); } }