使用IDEA创建Spring Boot项目, 整合Mybatis ,连接MySql数据库,实现简单的登录注册功能
前言:
这是本人的第一篇的博客,本人目前大三下学期,计算机专业,主要学习Java后端,之前学习Java都是使用的eclipse,现在刚刚接触IDEA,今天第一次使用IDEA搭建项目,所以在此记录一下搭建项目过程,也从此开启自己的写博客之旅。
思路:
1.首先创建一个保存用户信息的数据库(本人使用的MySQL)。
2.使用IDEA创建Spring Boot项目。
3.修改配置文件。
4.整合mybatis。
5.实现登录注册的业务逻辑与页面。
步骤:
一、新建数据库
1.使用Navicat for MySQL创建数据库,并新建用户信息表
SET FOREIGN_KEY_CHECKS=0; -- -------------- 4000 -------------- -- Table structure for `zs_user` -- ---------------------------- DROP TABLE IF EXISTS `zs_user`; CREATE TABLE `zs_user` ( `pk_user_id` varchar(32) NOT NULL COMMENT '用户主键id', `uuid` varchar(11) DEFAULT NULL COMMENT '用户的8位为随机id用作前端显示的唯一用户id', `user_name` varchar(50) NOT NULL COMMENT '用户名', `password` varchar(50) NOT NULL COMMENT '密码', `mobile` varchar(20) DEFAULT NULL COMMENT '手机号', `nick_name` varchar(255) DEFAULT NULL COMMENT '昵称', `interest` varchar(255) DEFAULT NULL COMMENT '兴趣爱好', `gender` int(1) DEFAULT NULL COMMENT '姓别 1-男,0-女', `img_url` varchar(255) DEFAULT NULL COMMENT '头像', `email` varchar(50) DEFAULT NULL COMMENT '邮箱', `regist_time` datetime DEFAULT NULL COMMENT '注册时间', `status` int(1) DEFAULT NULL COMMENT '用户状态:0:异常 1:已删除', `area_id` int(11) DEFAULT NULL COMMENT '区域_id', `city_id` int(11) DEFAULT NULL COMMENT '市_id', `province_id` int(11) DEFAULT NULL COMMENT '省_id', PRIMARY KEY (`pk_user_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of zs_user -- ----------------------------
二、使用IDEA创建Spring Boot项目。(百度安装IDEA)
1.打开IDE选择project,如下图:
2.选择Spring Initializr,然后Next(如果没有此选项,请移步至第三步),如下图:
3.如果没有Spring Initializr,选择File–>Settings–>Plugins,搜索Spring Boot,选择Spring Initializ,然后Install。
4.根据自己需求修改项目名称。
5.在左侧Web中选择Web,在Template Engines中选择Thymeleaf(模板),在SQL中选择MySQL、JDBC、MyBatis,然后Next,项目保存路径根据自己的电脑去修改。
三、修改配置文件。
1.新建的项目中application.properties文件是空的,我们需要在里面去配置datasource,MySql的用户名与密码根据的自己的来,如下:
#port server.port=8080 #datasource spring.datasource.url=jdbc:mysql://127.0.0.1:3306/zhou?noAccessToProcedureBodies=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC spring.datasource.username = root spring.datasource.password = 123456 spring.datasource.driverClassName = com.mysql.cj.jdbc.Driver
四、使用spring boot整合mybatis。
1.在application.properties文件中添加mybatis配置。如下:
#mybatis mybatis.type-aliases-package=com.zhou.entity mybatis.mapper-locations=classpath:mapper/*.xml
2.在pom.xml文件中添加mybatis自动生成代码插件代码片段(添加在build中)
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <!-- mybatis generator 自动生成代码插件 --> <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.1</version> <configuration> <configurationFile>${basedir}/src/main/resources/generator/generatorConfig.xml</configurationFile> <overwrite>true</overwrite> <verbose>true</verbose> </configuration> </plugin> </plugins> </build>
3.在resource下创建generator文件夹,并在文件夹中创建generatorConfig.xml,其中targetPackage表示包名,targetProject表示mybatis自动生成的代码的存放文字,本人是放在本地磁盘中,代码如下:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"> <generatorConfiguration> <!-- 选择你的本地的数据库驱动包--> <classPathEntry location="F:\MySQL\mysql-connector\mysql-connector-java-5.1.46\mysql-connector-java-5.1.46-bin.jar"/> <context id="DB2Tables" targetRuntime="MyBatis3"> <commentGenerator> <property name="suppressDate" value="true"/> <!-- 是否去除自动生成的注释 true:是 : false:否 --> <property name="suppressAllComments" value="true"/> </commentGenerator> <!--数据库连接驱动--> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://127.0.0.1/zhou" userId="root" password="123456"> </jdbcConnection> <javaTypeResolver> <property name="forceBigDecimals" value="false"/> </javaTypeResolver> <!-- 生成实体类的包名和位置--> <javaModelGenerator targetPackage="com.zhou.entity.user" targetProject="E:/zhou-gene/entity"> <property name="enableSubPackages" value="true"/> <property name="trimStrings" value="true"/> </javaModelGenerator> <!-- 生成XML映射文件的包名和位置--> <sqlMapGenerator targetPackage="resources.mapper" targetProject="E:/zhou-gene/mapper"> <property name="enableSubPackages" value="true"/> </sqlMapGenerator> <!-- 生成DAO接口的包名和位置--> <javaClientGenerator type="XMLMAPPER" targetPackage="com.zhou.dao.user" targetProject="E:/zhou-gene/dao"> <property name="enableSubPackages" value="true"/> </javaClientGenerator> <!-- 要生成的表 tableName是数据库中的表名或视图名 domainObjectName是实体类名--> <table tableName="zs_user" domainObjectName="User" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table> </context> </generatorConfiguration>
4.选择Run→Edit Configurations,然后选择maven,如果没有maven选项的就点击+号添加maven,如果还没有就去百度idea maven配置,在此就不做详细介绍了。接下来配置Command line,在后面写入:mybatis-generator:generate -e,修改Name,如下图:
5.完成上述操作后,点击run,出现如下图表示成功生成。
6.将生成的代码对应放在你事先设置的targetPackage中。
User用户实体类:
package com.zhou.entity.user; import java.util.Date; public class User { private String pkUserId; private String uuid; private String userName; private String password; private String mobile; private String nickName; private String interest; private Integer gender; private String imgUrl; private String email; private Date registTime; private Integer status; private Integer areaId; private Integer cityId; private Integer provinceId; public String getPkUserId() { return pkUserId; } public void setPkUserId(String pkUserId) { this.pkUserId = pkUserId == null ? null : pkUserId.trim(); } public String getUuid() { return uuid; } public void setUuid(String uuid) { this.uuid = uuid == null ? null : uuid.trim(); } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName == null ? null : userName.trim(); } public String getPassword() { return password; } public void setPassword(String password) { this.password = password == null ? null : password.trim(); } public String getMobile() { return mobile; } public void setMobile(String mobile) { this.mobile = mobile == null ? null : mobile.trim(); } public String getNickName() { return nickName; } public void setNickName(String nickName) { this.nickName = nickName == null ? null : nickName.trim(); } public String getInterest() { return interest; } public void setInterest(String interest) { this.interest = interest == null ? null : interest.trim(); } public Integer getGender() { return gender; } public void setGender(Integer gender) { this.gender = gender; } public String getImgUrl() { return imgUrl; } public void setImgUrl(String imgUrl) { this.imgUrl = imgUrl == null ? null : imgUrl.trim(); } public String getEmail() { return email; } public void setEmail(String email) { this.email = email == null ? null : email.trim(); } public Date getRegistTime() { return registTime; } public void setRegistTime(Date registTime) { this.registTime = registTime; } public Integer getStatus() { return status; } public void setStatus(Integer status) { this.status = status; } public Integer getAreaId() { return areaId; } public void setAreaId(Integer areaId) { this.areaId = areaId; } public Integer getCityId() { return cityId; } public void setCityId(Integer cityId) { this.cityId = cityId; } public Integer getProvinceId() { return provinceId; } public void setProvinceId(Integer provinceId) { this.provinceId = provinceId; } }
UserMapper.java 是mapper接口类:
package com.zhou.dao.user; import com.zhou.entity.user.User; import com.zhou.entity.user.UserInfo; public interface UserMapper { int deleteByPrimaryKey(String pkUserId); int insert(User record); int insertSelective(User record); User selectByPrimaryKey(String pkUserId); int updateByPrimaryKeySelective(User record); int updateByPrimaryKey(User record); }
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.zhou.dao.user.UserMapper" > <resultMap id="BaseResultMap" type="com.zhou.entity.user.User" > <id column="pk_user_id" property="pkUserId" jdbcType="VARCHAR" /> <result column="uuid" property="uuid" jdbcType="VARCHAR" /> <result column="user_name" property="userName" jdbcType="VARCHAR" /> <result column="password" property="password" jdbcType="VARCHAR" /> <result column="mobile" property="mobile" jdbcType="VARCHAR" /> <result column="nick_name" property="nickName" jdbcType="VARCHAR" /> <result column="interest" property="interest" jdbcType="VARCHAR" /> <result column="gender" property="gender" jdbcType="INTEGER" /> <result column="img_url" property="imgUrl" jdbcType="VARCHAR" /> <result column="email" property="email" jdbcType="VARCHAR" /> <result column="regist_time" property="registTime" jdbcType="TIMESTAMP" /> <result column="status" property="status" jdbcType="INTEGER" /> <result column="area_id" property="areaId" jdbcType="INTEGER" /> <result column="city_id" property="cityId" jdbcType="INTEGER" /> <result column="province_id" property="provinceId" jdbcType="INTEGER" /> </resultMap> <sql id="Base_Column_List" > pk_user_id, uuid, user_name, password, mobile, nick_name, interest, gender, img_url, email, regist_time, status, area_id, city_id, province_id </sql> <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.String" > select <include refid="Base_Column_List" /> from zs_user where pk_user_id = #{pkUserId,jdbcType=VARCHAR} </select> <delete id="deleteByPrimaryKey" parameterType="java.lang.String" > delete from zs_user where pk_user_id = #{pkUserId,jdbcType=VARCHAR} </delete> <insert id="insert" parameterType="com.zhou.entity.user.User" > insert into zs_user (pk_user_id, uuid, user_name, password, mobile, nick_name, interest, gender, img_url, email, regist_time, status, area_id, city_id, province_id ) values (#{pkUserId,jdbcType=VARCHAR}, #{uuid,jdbcType=VARCHAR}, #{userName,jdbcType=VARCHAR}, #{password,jdbcType=VARCHAR}, #{mobile,jdbcType=VARCHAR}, #{nickName,jdbcType=VARCHAR}, #{interest,jdbcType=VARCHAR}, #{gender,jdbcType=INTEGER}, #{imgUrl,jdbcType=VARCHAR}, #{email,jdbcType=VARCHAR}, #{registTime,jdbcType=TIMESTAMP}, #{status,jdbcType=INTEGER}, #{areaId,jdbcType=INTEGER}, #{cityId,jdbcType=INTEGER}, #{provinceId,jdbcType=INTEGER} ) </insert> <insert id="insertSelective" parameterType="com.zhou.entity.user.User" > insert into zs_user <trim prefix="(" suffix=")" suffixOverrides="," > <if test="pkUserId != null" > pk_user_id, </if> <if test="uuid != null" > uuid, </if> <if test="userName != null" > user_name, </if> <if test="password != null" > password, </if> <if test="mobile != null" > mobile, </if> <if test="nickName != null" > nick_name, </if> <if test="interest != null" > interest, </if> <if test="gender != null" > gender, </if> <if test="imgUrl != null" > img_url, </if> <if test="email != null" > email, </if> <if test="registTime != null" > regist_time, </if> <if test="status != null" > status, </if> <if test="areaId != null" > area_id, </if> <if test="cityId != null" > city_id, </if> <if test="provinceId != null" > province_id, </if> </trim> <trim prefix="values (" suffix=")" suffixOverrides="," > <if test="pkUserId != null" > #{pkUserId,jdbcType=VARCHAR}, </if> <if test="uuid != null" > #{uuid,jdbcType=VARCHAR}, </if> <if test="userName != null" > #{userName,jdbcType=VARCHAR}, </if> <if test="password != null" > #{password,jdbcType=VARCHAR}, </if> <if test="mobile != null" > #{mobile,jdbcType=VARCHAR}, </if> <if test="nickName != null" > #{nickName,jdbcType=VARCHAR}, </if> <if test="interest != null" > #{interest,jdbcType=VARCHAR}, </if> <if test="gender != null" > #{gender,jdbcType=INTEGER}, </if> <if test="imgUrl != null" > #{imgUrl,jdbcType=VARCHAR}, </if> <if test="email != null" > #{email,jdbcType=VARCHAR}, </if> <if test="registTime != null" > #{registTime,jdbcType=TIMESTAMP}, </if> <if test="status != null" > #{status,jdbcType=INTEGER}, </if> <if test="areaId != null" > #{areaId,jdbcType=INTEGER}, </if> <if test="cityId != null" > #{cityId,jdbcType=INTEGER}, </if> <if test="provinceId != null" > #{provinceId,jdbcType=INTEGER}, </if> </trim> </insert> <update id="updateByPrimaryKeySelective" parameterType="com.zhou.entity.user.User" > update zs_user <set > <if test="uuid != null" > uuid = #{uuid,jdbcType=VARCHAR}, </if> <if test="userName != null" > user_name = #{userName,jdbcType=VARCHAR}, </if> <if test="password != null" > password = #{password,jdbcType=VARCHAR}, </if> <if test="mobile != null" > mobile = #{mobile,jdbcType=VARCHAR}, </if> <if test="nickName != null" > nick_name = #{nickName,jdbcType=VARCHAR}, </if> <if test="interest != null" > interest = #{interest,jdbcType=VARCHAR}, </if> <if test="gender != null" > gender = #{gender,jdbcType=INTEGER}, </if> <if test="imgUrl != null" > img_url = #{imgUrl,jdbcType=VARCHAR}, </if> <if test="email != null" > email = #{email,jdbcType=VARCHAR}, </if> <if test="registTime != null" > regist_time = #{registTime,jdbcType=TIMESTAMP}, </if> <if test="status != null" > status = #{status,jdbcType=INTEGER}, </if> <if test="areaId != null" > area_id = #{areaId,jdbcType=INTEGER}, </if> <if test="cityId != null" > city_id = #{cityId,jdbcType=INTEGER}, </if> <if test="provinceId != null" > province_id = #{provinceId,jdbcType=INTEGER}, </if> </set> where pk_user_id = #{pkUserId,jdbcType=VARCHAR} </update> <update id="updateByPrimaryKey" parameterType="com.zhou.entity.user.User" > update zs_user set uuid = #{uuid,jdbcType=VARCHAR}, user_name = #{userName,jdbcType=VARCHAR}, password = #{password,jdbcType=VARCHAR}, mobile = #{mobile,jdbcType=VARCHAR}, nick_name = #{nickName,jdbcType=VARCHAR}, interest = #{interest,jdbcType=VARCHAR}, gender = #{gender,jdbcType=INTEGER}, img_url = #{imgUrl,jdbcType=VARCHAR}, email = #{email,jdbcType=VARCHAR}, regist_time = #{registTime,jdbcType=TIMESTAMP}, status = #{status,jdbcType=INTEGER}, area_id = #{areaId,jdbcType=INTEGER}, city_id = #{cityId,jdbcType=INTEGER}, province_id = #{provinceId,jdbcType=INTEGER} where pk_user_id = #{pkUserId,jdbcType=VARCHAR} </update> </mapper>
五、实现登录注册的业务逻辑与页面。
1.本人的项目结构如下:
2.介绍一下个各类作用:
(1)DataUtils时间工具类,用于获取当前时间。
package com.zhou.common.utils; import java.util.Date; public class DataUtils { /** * 获取当前事件 */ public static Date getCurrentDate() { return new Date(); } }
(2)UUIDUtils是生成UUID的工具类(32位随机主键,与11位用户唯一标识id,此步主要用与本人以后需用)
package com.zhou.common.utils; import java.util.Random; import java.util.UUID; /** * * @ClassName: UUIDUtils * @Description: UUID生成工具,用于生成32位的UUID */ public final class UUIDUtils { public UUIDUtils() { } /** * 自动生成32位的UUID,对应数据库会员表的主键,进行插入用 * * @return */ public static String getPkUUID() { return UUID.randomUUID().toString().replace("-", ""); } /** * 自动生成11位的UID,对应会员特殊标识 * * @return */ public static String getUserUUID() { Random random = new Random(); String result = ""; for (int i = 0; i < 11; i++) { //首字母不能为0 result += (random.nextInt(9) + 1); } return result; } }
(3)UserInfo实体类用于查询用户信息成功返回的对象(此步也主要是因为本人后面有用)。
UserInfo.java
package com.zhou.entity.user; import java.util.Date; public class UserInfo { private String uuid; private String userName; private String mobile; private String nickName; private String interest; private Integer gender; private String imgUrl; private String email; private Date registTime; public String getUuid() { return uuid; } public void setUuid(String uuid) { this.uuid = uuid == null ? null : uuid.trim(); } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName == null ? null : userName.trim(); } public String getMobile() { return mobile; } public void setMobile(String mobile) { this.mobile = mobile == null ? null : mobile.trim(); } public String getNickName() { return nickName; } public void setNickName(String nickName) { this.nickName = nickName == null ? null : nickName.trim(); } public String getInterest() { return interest; } public void setInterest(String interest) { this.interest = interest == null ? null : interest.trim(); } public Integer getGender() { return gender; } public void setGender(Integer gender) { this.gender = gender; } public String getImgUrl() { return imgUrl; } public void setImgUrl(String imgUrl) { this.imgUrl = imgUrl == null ? null : imgUrl.trim(); } public String getEmail() { return email; } public void setEmail(String email) { this.email = email == null ? null : email.trim(); } public Date getRegistTime() { return registTime; } public void setRegistTime(Date registTime) { this.registTime = registTime; } }
3.新建业务层接口UserService
package com.zhou.service.user; import com.zhou.entity.user.UserInfo; public interface UserService { /** * 用户登录 * @param userName 用户名 * @param password 密码 * @return UserInfo 用户信息 */ public UserInfo login(String userName,String password); /** * 用户注册 * @param userName 用户名 * @param password 密码 */ public void register(String userName,String password); }
4.使用用户名和密码登录,就需要使用用户名+密码两个参数去查询用户信息,自动生成的mapper接口中没有能满足的接口,所以就需要自己写一个selectByNameAndPwd接口
在UserMapper.java中添加
/** * * 通过用户名与密码查询用户信息 * @param record * @return */ public UserInfo selectByNameAndPwd(User record);
在UserMapper.xml中添加
<select id="selectByNameAndPwd" resultType="com.zhou.entity.user.UserInfo" parameterType="com.zhou.entity.user.User" > SELECT s.uuid AS uuid, s.user_name AS userName, s.mobile AS mobile, s.nick_name AS nickName, s.interest AS interest, s.gender AS gender, s.img_url AS imgUrl, s.email AS email, s.regist_time AS registTime FROM zs_user s WHERE 1=1 <if test="userName != null and userName != ''"> and s.user_name = #{userName,jdbcType=VARCHAR} </if> <if test="password != null and password != ''"> and s.password = #{password,jdbcType=VARCHAR} </if> </select>
5.新增业务层UserService的实现类UserServiceImpl(登录注册的业务逻辑就在其中了,目前只做了简单的数据库操作,很多严格的业务逻辑根据自己需求添加)
package com.zhou.serviceImpl.user; import com.zhou.common.utils.DataUtils; import com.zhou.common.utils.UUIDUtils; import com.zhou.dao.user.UserMapper; import com.zhou.entity.user.User; import com.zhou.entity.user.UserInfo; import com.zhou.service.user.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.Date; @Service public class UserServiceImpl implements UserService { @Autowired UserMapper userMapper; /** * 用户登录 * @param userName 用户名 * @param password 密码 * @return UserInfo 用户信息 */ @Override public UserInfo login(String userName, String password){ if (userName ==null || password == null){ //TODO异常处理后续完成 System.out.println("用户名或密码为空!"); } User user = new User(); user.setUserName(userName); user.setPassword(password); UserInfo userInfo = userMapper.selectByNameAndPwd(user); if (userInfo == null){ //TODO异常处理后续完成 System.out.println("用户名或密码错误"); } return userInfo; } /** * 用户注册 * @param userName 用户名 * @param password 密码 */ @Override public void register(String userName,String password){ if (userName ==null || password == null){ //TODO异常处理后续完成 System.out.println("用户名或密码为空!"); } User user = new User(); String pkUserId = UUIDUtils.getPkUUID(); String uuId = UUIDUtils.getUserUUID(); Date registerTime = DataUtils.getCurrentDate(); user.setPkUserId(pkUserId); user.setUuid(uuId); user.setUserName(userName); user.setPassword(password); user.setRegistTime(registerTime); int count = 0; count = userMapper.insert(user); if (count == 0){ //TODO异常处理后续完成 System.out.println("新增用户失败"); } } }
6.新建控制层UserController.java(简单的处理了逻辑)
package com.zhou.controller.user; import com.zhou.entity.user.UserInfo; import com.zhou.service.user.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @RequestMapping(value = {"/zhou"}) @Controller public class UserController { @Autowired UserService userService; /** * 跳转到登录测试页面 * @return 登录页面 */ @RequestMapping(value = {"user/loginPage"}) public String loginHtml(){ return "user/login"; } /** * 跳转到注册测试页面 * @return 注册页面 */ @RequestMapping(value = {"user/registerPage"}) public String registerPage(){ return "user/register"; } /** * 用户注册 */ @RequestMapping(value = {"user/register"}) @ResponseBody public String register(String userName,String password){ //TODO异常处理后续完成 userService.register(userName,password); System.out.println("注册成功"); return "注册成功"; } /** * 用户登录 */ @RequestMapping(value = {"user/login"}) public String login(String userName,String password){ UserInfo userInfo = userService.login(userName,password); if(userInfo == null){ //TODO异常处理后续完成 return "登录失败"; }else { System.out.println("登录用户信息:"+userInfo.toString()); } return "登录成功"; } }
7.由于主要是介绍后端的操作,所以前端的代码就比较简略与丑了。
登录测试页面login.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>登录测试</title> </head> <div> <form action="/zhou/user/login" method="post"> 用户名:<input type="text" name="userName" /><br> 密 码:<input type="password" name="password" /><br> <input type="submit" value="登录" /> </form> </div> </body> </html>
注册测试页面login.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>注册测试</title> </head> <body> <form action="/zhou/user/register" method="post"> 用户名:<input type="text" name="userName" /></br> 密码:<input type="password" name="password" /></br> <input type="submit" value="注册"> </form> </body> </html>
六、Run项目Application
输入http://localhost:8080/zhou/user/registerPage
注册成功
结尾:
由于这是本人的第一片博客,有什么不到之处希望大家提出问题指正,当然在整个创建过程中不少读者可能会遇到很多问题,欢迎留言评论,我一一回复大家。
有需要源码的读者可以去我的GitHub下载,附上我GitHub地址
https://github.com/jugheadzhou/shu.git
ps:这也是笔者第一次使用git提交代码到GitHub仓库,如果有什么问题希望读者可以指正。
- Eclipse使用(七)—— 使用Eclipse创建JavaWeb项目并使用JDBC连接数据库实现简单的登陆注册功能
- 初次使用springboot与jQuery实现简单的用户登录注册功能
- 使用IDEA利用Maven创建SSM项目并且实现简单的注册功能
- 使用Idea创建ssm项目,SpringMVC+Spring+MyBatis+Maven整合
- 使用IDEA搭建SpringBoot项目整合Mybatis踩的坑。。。。
- maven项目 spring-boot 整合 mybatis 实现查询功能demo
- 使用Idea创建ssm项目,SpringMVC+Spring+MyBatis+Maven整合
- 初学springboot+Mybatis+MySQL+idea创建简单项目
- 使用springmvc+mybatis实现增删改查并进行登录注册功能
- IDEA下创建Maven项目,并整合使用Spring、Spring MVC、Mybatis框架
- 基于IDEA创建Spring boot 项目实现登陆注册(Spring的学习之旅 二)
- 使用Idea创建ssm项目,SpringMVC+Spring+MyBatis+Maven整合
- IDEA+Gradle创建Springboot项目整合mybatis
- 使用Idea创建ssm项目,SpringMVC+Spring+MyBatis+Maven整合
- 使用idea创建springboot项目并打成war包发布到weblogic上
- 基于maven使用IDEA创建springboot多模块项目
- springmvc+mybatis+sql server实现简单登录功能【转】
- (十一)Spring Boot整合Mybatis使用druid实现多数据源自动切换
- MyBatis学习总结(八)——Mybatis3.x与Spring4.x整合 一、搭建开发环境 1.1、使用Maven创建Web项目 执行如下命令: mvn archetype:create
- Spring Boot / Spring MVC 入门实践 (三) : 入门项目介绍与用户注册登录的实现