环境:
编辑软件:Interllij IDEA 2019
数据库:Mysql 5.7
JDK:12.0.1
应用框架:springboot、mybatis、mysql、thmeleaf、generator等
直接进入主题:
1、新建项目
(此过程需要联网)
2、创建数据库表
CREATE TABLE `mysql`.`TbUser` (
`name` varchar(255) NULL,
`age` int(255) NULL,
`UserName` varchar(255) NOT NULL,
`PassWord` varchar(255) NULL,
PRIMARY KEY (`UserName`)
);
为什么要先建数据表呢?因为我们是面向对象编程,你得现有对象,才能有其对应的操作!
3、建立项目架构
Controller存放操作类、Mapper存放接口类(resource中的存放接口映射文件)、User存放实体类
4、使用Generator生成实体类、接口、映射文件
在IDEA的设置中搜索安装Mybatis Plugin
在项目的resource文件夹下建立generatorConfig.xml文件(建议做成模板,方便以后使用)
<?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>
<!--在外部库文件中找到mysql数据库文件的路径,复制添加进来-->
<classPathEntry
location="C:\Users\Acer\.m2\repository\mysql\mysql-connector-java\8.0.16\mysql-connector-java-8.0.16.jar"/>
<context id="mysql" targetRuntime="MyBatis3Simple" defaultModelType="flat">
<property name="suppressDate" value="true`"/>
<property name="suppressAllComments" value="true"/>
<!--配置mybatis与MySQL的连接,把对应userId、password修改成你的数据库账号密码-->
<jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
connectionURL="jdbc:mysql://127.0.0.1:3306/mysql?serverTimezone=GMT%2B8"
userId="root"
password="root">
</jdbcConnection>
<!-- 对应生成的model所在包,修改对应的targetPackage为你项目的包名,targetProject为对应的路径 -->
<javaModelGenerator targetPackage="com.object.demo.User"
targetProject="Java_Project\demo\src\main\java"/>
<!-- 配置生成mapper接口的映射,修改对应的targetPackage为你项目的包名,targetProject为对应的路径 -->
<sqlMapGenerator targetPackage="Mapper"
targetProject="Java_Project\demo\src\main\java\com\object\demo\Mapper">
</sqlMapGenerator>
<!-- 配置生成mapper对应的xml映射,修改对应的targetPackage为你项目的包名,targetProject为对应的路径 -->
<javaClientGenerator targetPackage="com.object.demo.Mapper"
targetProject="Java_Project\demo\src\main\resources"
type="XMLMAPPER"/>
<!--添加要生成的数据库对应表名,对应刚刚建立的数据表名称-->
<table tableName="TbUser"></table>
</context>
</generatorConfiguration>
右键点击generatorConfig.xml文件选择Run mybatis Generator运行
下方显示,则代表生成成功:
查看项目文件,即可看到生成的实体类、接口及xml文件:
5、设置springboot与数据库的连接
将resource文件夹下的application.properties文件后缀修改为.yml,编写其内容为:
server:
port: 8080
spring:
datasource:
url: jdbc:mysql://127.0.0.1:3306/mysql?serverTimezone=GMT%2B8
username: root
password: root
driver-class-name: com.mysql.cj.jdbc.Driver
mybatis:
mapper-locations: classpath*:Mapper/*.xml
6、修改TbUserMapper.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="com.project.edemo.Mapper.TbUserMapper">
<insert id="insert" parameterType="com.project.edemo.User.TbUser">
element was generated on Sun Jun 02 23:45:55 CST 2019.
insert into tb_user (name, age, UserName,
PassWord)
values (#{name,jdbcType=VARCHAR}, #{age,jdbcType=INTEGER}, #{username,jdbcType=VARCHAR},
#{password,jdbcType=VARCHAR})
</insert>
<select id="selectAll" parameterType="com.project.edemo.User.TbUser" resultType="com.project.edemo.User.TbUser">
select name, age, username, password
from tb_user
</select>
<select id="Login" parameterType="com.project.edemo.User.TbUser" resultType="com.project.edemo.User.TbUser">
select name, age, username, password
from tb_user where username=#{username} and password=#{password}
</select>
</mapper>
7、调整环境并编写Controller
1.在入口文件EdemoApplication中添加(双引号中的包名为接口文件类所在的包名)扫描接口类:
@MapperScan("com.project.edemo.Mapper")
2.在接口文件中添加(与上方的配套使用):
@Repository
3.编辑Controller
package com.project.edemo.Controller;
import com.project.edemo.Mapper.TbUserMapper;
import com.project.edemo.User.TbUser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;
import java.util.List;
@Service
@RestController
public class UserController {
//引入接口对象
final TbUserMapper TU;
@Autowired
public UserController(TbUserMapper tu) {
TU = tu;
}
//页面入口方法
@RequestMapping(value = "/")
public ModelAndView index( ModelAndView mv){
mv.setViewName("/index");
return mv;
}
//登陆方法
@RequestMapping(value = "/Login")
public String Login(TbUser User){
String flag = "";
System.out.print("用户账号为:"+User.getUsername()+",密码为:"+User.getPassword()+"\n");
try {
if(TU.Login(User)!=null){
System.out.print("登陆成功!\n");
flag = "Success";
}else {
System.out.print("登陆失败\n");
flag = "Error";
}
} catch (Exception e){
e.printStackTrace();
}
return flag;
}
//注册方法
@RequestMapping(value = "/Insert")
public String Insert(TbUser User){
String flag = "";
System.out.print("用户账号为:"+User.getUsername()+",密码为:"+User.getPassword()+"\n");
try {
if(TU.insert(User)==1){
System.out.print("注册成功!\n");
flag = "Success";
}else {
System.out.print("注册失败\n");
flag = "Error";
}
} catch (Exception e){
e.printStackTrace();
}
return flag;
}
}
8、编写登陆注册页面
1.在static文件夹下新建JS文件夹,将Jquery.js文件放入其中
2.在templates文件夹下新建index.html文件(登陆注册都在此页面上,很简陋)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>首页</title>
<script src="/JS/jquery.js"></script>
</head>
<script>
function Login() {
$.ajax({
url:"/Login",
type:"POST",
timeout:2000,
dataType:"text",
data:{
"username":$('#UserName').val(),
"password":$('#PassWord').val()
},
success:function (d) {
if(d==="Success"){
alert("登陆成功!");
}else {
alert("登陆失败!");
}
}
})
}
function Insert() {
$.ajax({
url:"/Insert",
type:"POST",
timeout:2000,
dataType:"text",
data:{
"name":$('#Insert_Name').val(),
"age":$('#Insert_age').val(),
"username":$('#Insert_UserName').val(),
"password":$('#Insert_PassWord').val()
},
success:function (d) {
if(d==="Success"){
alert("注册成功!");
}else {
alert("注册失败!");
}
}
})
}
</script>
<body>
<div>
用户名:<input type="text" id="UserName" />
密码:<input type="password" id="PassWord" />
<input type="button" onclick="Login()" value="提交">
</div>
<br/>
<br/>
<div>
姓名:<input type="text" id="Insert_Name" /><br/>
年龄:<input type="text" id="Insert_age" /><br/>
用户名:<input type="text" id="Insert_UserName" /><br/>
密码:<input type="password" id="Insert_PassWord" /><br/>
<input type="button" onclick="Insert()" value="提交">
</div>
</body>
</html>
9、浏览器查看
1.在浏览器中输入127.0.0.1:8080
2.测试注册
3.测试登陆
10、OK完工,页面美化、登陆拦截什么的慢慢添加。