Springboot初步开发
客户端和服务器端
客户端是h5页面,服务器端是java后台
本次目的是结合数据库进行操作,本次完成的功能是添加数据进数据库
第一步 pom文件添加依赖和在配置文件中添加信息
在pom文件中添加oracle数据库和druid连接池的依赖
<!-- oracle数据库-->
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0.3.0</version>
</dependency>
<!-- 阿里的数据源-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.9</version>
</dependency>
在配置文件中添加spring和myabtis有关的配置文件
spring:
datasource:
name: test
type: com.alibaba.druid.pool.DruidDataSource
druid:
filter: stat
driver-class-name: oracle.jdbc.OracleDriver
url: jdbc:oracle:thin:@localhost:1521:xe
username: system
password: sun
mybatis:
mapper-locations: classpath:mapper/*.xml
type-aliases-package: com.exam.demo.model
第二步 编写model层的pojo文件
这个联系数据库内的和h5页面的字段,名字要和h5页面的字段一样
public class pojo {
int id;
String userName;
String pass;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPass() {
return pass;
}
public void setPass(String pass) {
this.pass = pass;
}
}
接着我们写个是否成功的方法:
public class chenggongyanzheng {
int code;
String message;
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
第三步 编写mapper文件和dao层文件
本次完成的是注册功能,所以需求是insert
首先导入mapper的头文件,这是每个mapper都要这样写的
<?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">
接着我们去dao层建立对应的接口:
@Repository注解标记了这个是dao层
@Repository
public interface lala {
int insertu(pojo p);
}
接着写mappper对应的方法:
namespace要对应dao层
<mapper namespace="com.exam.demo.dao.lala">
<insert id="insertu">
<selectKey keyProperty="id" order="BEFORE" resultType="java.lang.Integer">
select o_user_seq.nextval from dual
</selectKey>
insert into o_user(id,userName,pass) values (#{id},#{userName},#{pass})
</insert>
</mapper>
第四步 编写service层及其实现方法
先写接口,在写实现的方法
public interface hualala {
chenggongyanzheng shalala(pojo p);
}
紧接着我们写实现方法:
- @Service(value = “userservice”)是标记这是service层,value的值的controller层要调用的值,是为了保证在controller层autowired调用时的唯一性,也可以不写value
- @Autowired是自动调用的意思,这里我们用他调用dao层接口
- 通过设置model类中的chenggongyanzheng我们就能知道执行成功没
@Service(value = "userservice")
public class hualalaimpl implements hualala{
@Autowired
lala lal; //dao层接口
chenggongyanzheng f;
@Override
public chenggongyanzheng shalala(pojo p) {
int c=lal.insertu(p);
if (c>0)
{
f=new chenggongyanzheng();
f.setCode(200);
f.setMessage("succ");
}
else {
f=new chenggongyanzheng();
f.setCode(201);
f.setMessage("false");
}
return f;
}
}
第五步 编写controller层
- @Controller是标记这是controller层
- @RequestMapping(value = “/reg2”)是标记等下进这个路径
- 第一个reg2方法的意思是输入的路径为/user/reg2的时候,进入reg页面
- 第二个toreg方法则是reg页面提交表单为toReg时,model和pojo结合了,所以pojo的值,即为下面form表单中userName和pass的值,由此看来,form表单的名字和pojo要对应好
- redirect是直接转向到地址
@Controller
@RequestMapping(value = "/user")
public class Usercontroller {
@Autowired
private hualala hua;
@RequestMapping(value = "/reg2")
public String reg2(){
return "reg";
}
@RequestMapping("/toReg")
public String toreg(pojo p, Model m){
System.out.println(p.getUserName());
chenggongyanzheng chenggongyanzheng=hua.shalala(p);
if(chenggongyanzheng.getCode()==200){
//redirect直接转向到地址
return "redirect:/user/login";
}
else {
return "redirect:/user/reg2";
}
}
}
附上reg页面的提交表单:
<form action="/user/toReg" method="post">
<div id="wrap">
<div id="head">
<div class="h1d1"></div>
<div class="h1d2">已有账号?<a href="/user/login">请登录></a></div>
<div><img src="/img/zc2.png"/></div>
</div>
<div id="zhong">
<div class="z1">
<div><input type="text" name ="userName" id="userName" placeholder="输入用户名" required/></div>
<div><input type="text" name="pass" id="pass" placeholder="请输入密码" required/></div>
<div class="z1h1"><input type="submit" value="下一步"/></div>
</div>
</div>
<div id="xia"><img src="/img/dlxia.png"/></div>
</div>
</form>
第六步 在启动文件中添加注解
在启动的java文件中,头上加入这句话
@MapperScan("com.exam.demo.dao")