IDEA搭建 SpringBoot+Mybatis+Maven Web 项目开发环境

IDEA搭建

SpringBoot+Mybatis+Maven Web

项目开发环境

Demo演示功能:

查询Oracle数据库dept表信息,并将信息展示在页面上。

1、创建项目

打开IDEA,点击File---->New---->Project,如图:

选择Spring Initializr,选择好JDK,点击Next,如图:

填写Group,Artifact,Type,Packaging后,点击Next,如图:

选择好Web,点击SQL,如图:

选择MySQL(这里可以不选择MySQL,我们Demo中使用的是Oracle数据库),JDBC,MyBatis,点击Next,如图:

填写Project name,点击Finish,如图:

2、dept表

Oracle数据库dept表信息如下:

3、实体层

建立数据库表dept与Dept实体类映射,建立数据库字段与实体类属性对应关系,数据库字段与实体类属性名称可以不相同。

为能够通过注解方式自动将实体对象注入到Spring容器中和后期代码维护,实体类一般需要创建无参、有参构造方法,为每一个属性创建getter和setter方法,建立equals、hashCode、toString方法。当然,在实际开发中,我们只需要写好实体类的属性即可,其余部分IDEA会帮我们自动创建。

(1)Dept类

代码:

package com.leboop.entity;

/**

* Dept实体类

*/

public class Dept {

/**

*部门号

*/

private Integer deptno;

/**

*部门名称

*/

private String dname;

/**

*部门地址

*/

private String loc;

/**

*无参构造方法

*/

public Dept() {

}

/**

*含参构造

*@paramdeptno部门号

*@paramdname部门名称

*@paramloc部门地址

*/

public Dept(Integer deptno, String dname, String loc) {

this.deptno = deptno;

this.dname = dname;

this.loc = loc;

}

/*

getter和setter方法开始

*/

public Integer getDeptno() {

return deptno;

}

public void setDeptno(Integer deptno) {

this.deptno = deptno;

}

public String getDname() {

return dname;

}

public void setDname(String dname) {

this.dname = dname;

}

public String getLoc() {

return loc;

}

public void setLoc(String loc) {

this.loc = loc;

}

/*

getter和setter方法结束

*/

@Override

public boolean equals(Object o) {

if (this == o) return true;

if (o == null || getClass() != o.getClass()) return false;

Dept dept = (Dept) o;

if (deptno != null ? !deptno.equals(dept.deptno) : dept.deptno != null)

return false;

if (dname != null ? !dname.equals(dept.dname) : dept.dname != null)

return false;

return loc != null ? loc.equals(dept.loc) : dept.loc == null;

}

@Override

public int hashCode() {

int result = deptno != null ? deptno.hashCode() : 0;

result = 31 * result + (dname != null ? dname.hashCode() : 0);

result = 31 * result + (loc != null ? loc.hashCode() : 0);

return result;

}

@Override

public String toString() {

return "Dept{" +

"deptno=" + deptno +

", dname='" + dname + '\'' +

", loc='" + loc + '\'' +

'}';

}

}

4、映射层

(1)DeptMapper.xml配置

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

SELECT * FROM dept WHERE deptno=#

5、持久层

(1)DeptDao接口代码

package com.leboop.dao;

import com.leboop.entity.Dept;

import org.apache.ibatis.annotations.Mapper;

import org.springframework.stereotype.Component;

/**

* DeptDao接口

*数据库持久层:数据增删改查

*/

@Mapper

@Component("deptDao")

public interface DeptDao {

Dept findById(int id);

}

6、服务层

(1)DeptService接口代码

package com.leboop.service;

import com.leboop.entity.Dept;

/**

* DeptService接口

*/

public interface DeptService {

/**

*根据id查询部门信息

*@paramid部门id

*@return员工对象

*/

Dept findById(int id);

}

(2)DeptServiceImpl实现类代码

package com.leboop.service;

import com.leboop.dao.DeptDao;

import com.leboop.entity.Dept;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Service;

/**

* DeptService接口实现类

* Dept相关业务逻辑和数据处理

*/

@Service("deptService")

public class DeptServiceImpl implements DeptService {

/**

*自动注入Spring容器

*/

@Autowired

private DeptDao dao;

/**

*重写接口方法

*根据部门id,查询部门信息

*@paramid部门id

*@return部门信息

*/

@Override

public Dept findById(int id) {

Dept dept = dao.findById(id);

return dept;

}

}

7、控制层

(1)DeptController代码

package com.leboop.controller;

import com.leboop.entity.Dept;

import com.leboop.service.DeptService;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;

/**

* Dept控制器

*处理前端请求

*/

@RestController

@RequestMapping("/dept")

public class DeptController {

/**

*自动注入Spring容器

*/

@Resource

private DeptService service;

@RequestMapping("find")

public Dept findDept(int id){

Dept dept = service.findById(id);

return dept;

}

}

8、SpringBoot配置

(1)application.properties

#数据源配置

spring.datasource.type=org.apache.commons.dbcp2.BasicDataSource

spring.datasource.driver=oracle.jdbc.driver.OracleDriver

spring.datasource.url=jdbc:oracle:thin:@192.168.189.132:1521:orcl

spring.datasource.username=scott

spring.datasource.password=tiger

# mybatis配置

mybatis.type-aliases-package=com.leboop.entity

mybatis.mapper-locations=classpath:mapper/*.xml

9、主页

(1)index.html代码

主页

查询部门信息

请选择查询的部门号:

this)">

请选择

10

20

30

40

50

(2)findDept.js代码

functionfind(sel){

//获取下拉框的值

varvalue=sel.options[sel.selectedIndex].value;

if(value!=-1){//如果已选择部门号

$.ajax(

{

type:'post',

url:'./dept/find',

data:{

id:value

},

success:function(result) {

if(result!=null&&result!=""){

$("#info").html("

部门号:"+result.deptno+"

");

$("#info").append("

部门名称:"+result.dname+"

");

$("#info").append("

部门地址:"+result.loc+"

");

}else{

$("#info").html("

未查询到结果

")

}

},

error:function() {

$("#info").html("

查询error

")

}

}

);

}else{//下拉框值为“请选择”

$("#info").html();

}

}

10、打包部署

将项目打成war包,需要ServletInitializer类,如下:

(1)ServletInitializer

package com.leboop;

import org.springframework.boot.builder.SpringApplicationBuilder;

import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;

public class ServletInitializer extends SpringBootServletInitializer {

@Override

protected SpringApplicationBuilder configure(

SpringApplicationBuilder application) {

return application.sources(DemoApplication.class);

}

}

(2)springbootdemo.war包

如图:

(3)上传

将war包上传至服务器192.168.189.111的tomcat的webapps目录下,如图:

(4)Windows本地访问

在浏览器输入http://192.168.189.111:8080/springbootdemo/,如图:

选择部门号10后,如图:

再选择部门号50,如图:

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180724G140S800?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励