创建spring项目
1.选择jdk版本,选择下一步
- 选择打包Java版本,打包方式等,我直接用Java8,其他默认
3.选择需要的依赖,点击下一步
4.起项目名称,项目保存路径,点击完成
5.创建完成后如下图
现在可以简单配置一下跑起来了,
先配置一下数据库吧,不然启动的时候持久层的依赖发现你没有配置数据库信息会报错
我这里使用yml文件来配置
内容如下
spring:
datasource:
name: test #数据库名
url: jdbc:mysql://175.24.122.128:3306/mybloc
username: root #用户名
password: abc #密码
driver-class-name: com.mysql.cj.jdbc.Driver #数据库链接驱动
现在让我们来创建一个index.html来测试是否可以访问,记得将页面创建放到templates里面哟
有了页面还需要controller来跳转
新建一个controller包并在其中建一个controller类
这里可能会遇到右键新建里面没有Java类的创建,不要慌,直接右键项目
这个时候就有了
建好controller类,再写个跳转方法吧
package com.example.demo.controller;
import com.example.demo.service.BookService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
import java.util.HashMap;
import java.util.Map;
@Controller
public class HelloController {
@Autowired
BookService bookService;
@RequestMapping("/index")
public String goindex(ModelAndView modelAndView){
return "index";
}
}
到此可以跑项目了
找到启动类,就是项目这个项目名称+Application组合的类,右键选择启动方式启动
这个就是启动成功了,标出的就是启动端口
页面访问也没问题
到此第一阶段完成。
实现数据库的操作
此阶段使用mapper代理来取数据库数据,使用jQuery来前台获取数据展示
我们都知道一般的后台有4层操作即controller、service、dao、mapper,这里我偷懒就不写dao了,创建目录结构如下
创建对应的类文件
实体类
package com.example.demo.bean;
public class Book {
private String id;
private String name;
private String jiage;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getJiage() {
return jiage;
}
public void setJiage(String jiage) {
this.jiage = jiage;
}
}
mapper接口
package com.example.demo.mapper;
import com.example.demo.bean.Book;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
@Mapper
public interface BookMapper {
public List<Book> getBook();
}
service类
package com.example.demo.service;
import com.example.demo.bean.Book;
import com.example.demo.mapper.BookMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class BookService {
@Autowired
BookMapper bookMapper;
public List<Book> getBook(){
return bookMapper.getBook();
}
}
controller类
package com.example.demo.controller;
import com.example.demo.service.BookService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
import java.util.HashMap;
import java.util.Map;
@Controller
public class HelloController {
@Autowired
BookService bookService;
@RequestMapping("/index")
public String goindex(ModelAndView modelAndView){
return "index";
}
@RequestMapping("/getBooks")
@ResponseBody
public Map<String,Object> goBooks(){
Map<String,Object> map=new HashMap<>();
map.put("books",bookService.getBook());
return map;
}
}
mapper.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.example.demo.mapper.BookMapper" >
<!-- 属性绑定 -->
<resultMap id="BaseResultMap" type="com.example.demo.bean.Book">
<id column="id" property="id" />
<result column="name" property="name" />
<result column="jiage" property="jiage" />
</resultMap>
<insert id="insert" parameterType="com.example.demo.bean.Book">
insert into book(name,jiage) values(#{name},#{jiage})
</insert>
<select id="getBook" resultMap="BaseResultMap">
select * from book
</select>
</mapper>
修改index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="js/jquery-1.9.1.min.js" type="text/javascript"></script>
<script>
$.ajax({
url: '/getBooks',
success:function (date){
var books=date.books;
var html="";
for( var i=0;i<books.length;i++){
html=html+"<tr><td>"+books[i].id+"</td><td>"+books[i].name+"</td><td>"+books[i].jiage+"</td></tr>"
}
$('#book').html(html);
}
})
</script>
</head>
<body>
<table id="book">
</table>
</body>
</html>
此处的js需要放到static里面如下
yml文件需要增加mapper.xml的扫描路径配置
mybatis:
mapper-locations: classpath:mapper/*.xml #配置映射文件
type-aliases-package: com.example.demo.bean #配置实体类
如果使用mysql8的话需要更换驱动依赖,不然会报数据库连接错误
到此代码编写完毕,启动测试如下
可以看到数据库表的数据已经被取出展示到页面了,其他增删操作就不介绍了,无非是修改sql的问题