SpringBoot框架整合SSM实现简单数据库增删改查

首先创建一个Maven工程

第一步:选择Maven项目创建结构

第二步:配置项目属性

点击finish即可完成创建

再来看一下项目的目录

然后配置pom.xml依赖文件

 <?xml version="1.0" encoding="UTF-8"?>  
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">  
    <modelVersion>4.0.0</modelVersion>  
    <groupId>com.znkj</groupId>  
    <artifactId>springbootest</artifactId>  
    <version>0.0.1-SNAPSHOT</version>  
    <packaging>jar</packaging>  
    <name>springbootest</name>  
    <description>Demo project for Spring Boot</description>  
   <!-- 引入SpringBoot父类依赖 -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.1.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <!-- SpringBoot-web组件 springmvc+spring+mybatis -->
        <dependency> 
            <groupId>org.springframework.boot</groupId> 
            <artifactId>spring-boot-starter-web</artifactId> 
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>1.0.0</version>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-configuration-processor</artifactId>

    <optional>true</optional>

 <exclusions>
                <exclusion>
                    <groupId>javax.servlet</groupId>
                    <artifactId>javax.servlet-api</artifactId>
                </exclusion>
            </exclusions>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.21</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</dependency>
<dependency>  
    <groupId>javax.validation</groupId>  
    <artifactId>validation-api</artifactId>  
    <version>1.1.0.Final</version> 

</dependency>  

<dependency>  
    <groupId>org.hibernate</groupId>  
    <artifactId>hibernate-validator</artifactId>  
    <version>5.2.4.Final</version>  

</dependency>  

    </dependencies>

    <build>

        <plugins>

            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>  

application.properties(数据源配置)

server.port=8080
#springboot   mybatis
#jiazai mybatis peizhiwenjian
mybatis.mapper-locations = classpath:mapper/*Mapper.xml
mybatis.type-aliases-package = com.znkj.demo.entity


#shujuyuan
spring.datasource.driver-class-name= com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username = root
spring.datasource.password = ****
spring.mybatis.database = mysql

entity(实体类)

package com.znkj.demo.entity;


import org.springframework.stereotype.Component;
@Component("user")
public class User{
    private int id;//用户ID
    private String username;//用户名
    private int age;//用户年龄
/**
* @return the id
*/
public int getId() {
return id;
}
/**
* @param id the id to set
*/
public void setId(int id) {
this.id = id;
}
/**
* @return the username
*/
public String getUsername() {
return username;
}
/**
* @param username the username to set
*/
public void setUsername(String username) {
this.username = username;
}
/**
* @return the age
*/
public int getAge() {
return age;
}
/**
* @param age the age to set
*/
public void setAge(int age) {
this.age = age;
}
/* (非 Javadoc) 
* <p>Title: toString</p> 
* <p>Description: </p> 
* @return 
* @see java.lang.Object#toString() 
*/  

@Override
public String toString() {
return "User [id=" + id + ", username=" + username + ", age=" + age + "]";
}
    
}

dao(接口)

package com.znkj.demo.dao;


import java.util.List;




import org.mybatis.spring.annotation.MapperScan;
import org.springframework.stereotype.Repository;


import com.znkj.demo.entity.User;


/**

* @描述:用户接口层
* @方法名: 
* @param 
* @return
* @返回类型 
* @创建人 
* @创建时间 
* @修改人 
* @修改时间 
* @修改备注
* @since
* @throws
*/
@MapperScan//扫描dao接口
@Repository//提供异常转译
public interface UserDao {
/**

* @Title: findUserInfo 
* @Description: 查询(这里用一句话描述这个方法的作用) 
* @param @return    设定文件 
* @return List<User>    返回类型 
* @throws
*/
public List<User> findUser();
/**
  * 
* @Title: addUserInfo 
* @Description: 添加(这里用一句话描述这个方法的作用) 
* @param @param user
* @param @return    设定文件 
* @return int    返回类型 
* @throws
  */
    public boolean addUser(User user);  
    /**
     * 
    * @Title: delUserInfo 
    * @Description: 删除(这里用一句话描述这个方法的作用) 
    * @param @param id
    * @param @return    设定文件 
    * @return int    返回类型 
    * @throws
     */
    public boolean delUser(User user);
    /**
     * 
    * @Title: updateUser 
    * @Description: 修改(这里用一句话描述这个方法的作用) 
    * @param @param user
    * @param @return    设定文件 
    * @return int    返回类型 
    * @throws
     */
    public boolean updateUser(User user);


}

mapper(dao实现类)

<?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.znkj.demo.dao.UserDao">
<!-- 查询 -->
 <select id="findUser" resultType="com.znkj.demo.entity.User">  
    select * from users  
  </select>
  <!-- 添加 -->  
  <insert id="addUser" parameterType="com.znkj.demo.entity.User">  
    insert into users (username,age)  
    values (#{username},#{age})  
  </insert>
  <!-- 删除 -->  
  <delete id="delUser" parameterType="com.znkj.demo.entity.User">  
   delete from users where id=#{id}  
  </delete>
   <!-- 修改 -->  
  <update id="updateUser" parameterType="com.znkj.demo.entity.User">  
  update users set username=#{username},age=#{age}  where id =#{id}  
  </update>   
</mapper>  

controller(控制层)

package com.znkj.demo.controller;


import java.util.ArrayList;
import java.util.List;


import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.znkj.demo.entity.User;
import com.znkj.demo.service.UserService;


/**

* @描述:用户模块控制层
* @方法名: 
* @param 
* @return
* @返回类型 
* @创建人 
* @创建时间 
* @修改人 
* @修改时间 
* @修改备注
* @since
* @throws
*/
@RestController//注解是@Controller和@ResponseBody的合集,表示这是个控制器bean,并且是将函数的返回值直 接填入HTTP响应体中,是REST风格的控制器。
@RequestMapping("user")//请求地址
public class UserController {
@Autowired
UserService userService;
@Autowired
List<User> list=new ArrayList<User>();


/* (非 Javadoc) 
* <p>Title: findUserInfo</p> 
* <p>Description: 查询</p> 
* @return 
* @see com.znkj.demo.service.UserService#findUserInfo() 
*/  

@RequestMapping(value="findUser")
public List<User> findUser() {
System.out.println(userService.findUser());
list = userService.findUser();
return list;
}


/* (非 Javadoc) 
* <p>Title: addUserInfo</p> 
* <p>Description: 添加</p> 
* @param user
* @return 
* @see com.znkj.demo.service.UserService#addUserInfo(com.znkj.demo.entity.User) 
*/  

@RequestMapping(value="addUser")
public boolean addUser(User user) {
System.out.println(user);
return userService.addUser(user);
}


/* (非 Javadoc) 
* <p>Title: delUserInfo</p> 
* <p>Description: 删除</p> 
* @param id
* @return 
* @see com.znkj.demo.service.UserService#delUserInfo(int) 
*/  

@RequestMapping(value="delUser")
public boolean delUser(User user) {
System.out.println(user);
return userService.delUser(user);
}
/**

* @Title: updateUser 
* @Description: 修改(这里用一句话描述这个方法的作用) 
* @param @param user
* @param @return    设定文件 
* @return int    返回类型 
* @throws
*/
@RequestMapping(value="updateUser")
public boolean updateUser(User user){
System.out.println(user);
return userService.updateUser(user);

}





}

service(业务层接口)

package com.znkj.demo.service;


import java.util.List;


import com.znkj.demo.entity.User;


/**

* @描述:用户业务层接口
* @方法名: 
* @param 
* @return
* @返回类型 
* @创建人 
* @创建时间 
* @修改人 
* @修改时间 
* @修改备注
* @since
* @throws
*/
public interface UserService {
/**

* @Title: findUserInfo 
* @Description: 查询(这里用一句话描述这个方法的作用) 
* @param @return    设定文件 
* @return List<User>    返回类型 
* @throws
*/
public List<User> findUser();
/**
  * 
* @Title: addUserInfo 
* @Description: 添加(这里用一句话描述这个方法的作用) 
* @param @param user
* @param @return    设定文件 
* @return int    返回类型 
* @throws
  */
    public boolean addUser(User user);  
    /**
     * 
    * @Title: delUserInfo 
    * @Description: 删除(这里用一句话描述这个方法的作用) 
    * @param @param id
    * @param @return    设定文件 
    * @return int    返回类型 
    * @throws
     */
    public boolean delUser(User user);  
    /**
     * 
    * @Title: updateUser 
    * @Description: 修改(这里用一句话描述这个方法的作用) 
    * @param @param user
    * @param @return    设定文件 
    * @return int    返回类型 
    * @throws
     */
    public boolean updateUser(User user);




}

serviceimpl(业务层实现类)

package com.znkj.demo.service.impl;


import java.util.ArrayList;
import java.util.List;


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


import com.znkj.demo.dao.UserDao;
import com.znkj.demo.entity.User;
import com.znkj.demo.service.UserService;


/**

* @描述:用户业务实现层
* @方法名: 
* @param 
* @return
* @返回类型 
* @创建人 
* @创建时间 
* @修改人 
* @修改时间 
* @修改备注
* @since
* @throws
*/
@Service("userService")//用于修饰service层的组件
public class UserServiceImpl implements UserService {
@Autowired
UserDao userDao;
@Autowired
List<User> list=new ArrayList<User>();


/* (非 Javadoc) 
* <p>Title: findUserInfo</p> 
* <p>Description: 查询</p> 
* @return 
* @see com.znkj.demo.service.UserService#findUserInfo() 
*/  

@Override
public List<User> findUser() {
list = userDao.findUser();
return list;
}


/* (非 Javadoc) 
* <p>Title: addUserInfo</p> 
* <p>Description: 添加</p> 
* @param user
* @return 
* @see com.znkj.demo.service.UserService#addUserInfo(com.znkj.demo.entity.User) 
*/  

@Override
public boolean addUser(User user) {
return userDao.addUser(user);
}


/* (非 Javadoc) 
* <p>Title: delUserInfo</p> 
* <p>Description: 删除</p> 
* @param id
* @return 
* @see com.znkj.demo.service.UserService#delUserInfo(int) 
*/  

@Override
public boolean delUser(User user) {
return userDao.delUser(user);
}


/* (非 Javadoc) 
* <p>Title: updateUser</p> 
* <p>Description: 修改</p> 
* @param user
* @return 
* @see com.znkj.demo.service.UserService#updateUser(com.znkj.demo.entity.User) 
*/  

@Override
public boolean updateUser(User user) {
return userDao.updateUser(user);
}

 

}

在webapp下面新建js文件夹

js(存放jquery文件)

jquery2.0.3.min.js

在webapp下面新建html页面

add.html(添加)

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>添加</title>
<script src="js/jquery2.0.3.min.js"></script><!-- 引用jquery -->
</head>
<body>
用户名:<input type="text" name="username" id="username"/><br/>
年龄:<input type="text" name="age" id="age"/><br/>
<button type="button" onclick="addUser()">添加</button>
<script type="text/javascript">
/**
 * 添加
 */
function addUser(){
var username=document.getElementById("username").value;
if(username.length==0){
alert('用户名不能为空');
return false;
}
var age=document.getElementById("age").value;
if(age.length==0){
alert('年龄不能为空');
return false;
}
$.ajax({
url:'/user/addUser?username='+username+'&age='+age,
type:'post',
dataType:'json',
contenType:'application/json',
    error:function(){
    alert('输入错误');
    }
}),
   function success(data){
    if(data!=null){
   
    alert('添加成功');
    }
    }
}
</script>
</body>
</html>

delete.html(删除)

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>删除</title>
<script src="js/jquery2.0.3.min.js"></script><!-- 引用jquery -->
</head>
<body>
ID:<input type="text" name="id" id="id"/><br/>
<button type="button" onclick="deleteone()">删除</button>
<script type="text/javascript">
/**
 * 删除
 */
function deleteone(){
var id=document.getElementById("id").value;
if(id.length==0){
alert('ID不能为空');
return false;
}

$.ajax({
url:'/user/delUser?id='+id,
type:'post',
dataType:'json',
contenType:'application/json',
    error:function(){
    alert('输入错误');
    }
}),
function success(data){
if(data!=null){
    alert('删除成功');
    }
}
}
</script>
</body>
</html>

update.html(修改)

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>修改</title>
<script src="js/jquery2.0.3.min.js"></script><!-- 引用jquery -->
</head>
<body>
ID:<input type="text" name="id" id="id"/><br/>
用户名:<input type="text" name="username" id="username"/><br/>
年龄:<input type="text" name="age" id="age"/><br/>
<button type="button" onclick="updateone()">修改</button>
<script type="text/javascript">
/**
 * 修改
 */
function updateone(){
var id=document.getElementById("id").value;
if(id.length==0){
alert('用户ID不能为空');
return false;
}
var username=document.getElementById("username").value;
if(username.length==0){
alert('用户名不能为空');
return false;
}
var age=document.getElementById("age").value;
if(age.length==0){
alert('年龄不能为空');
return false;
}
$.ajax({
url:'/user/updateUser?id='+id+'&username='+username+'&age='+age,
type:'post',
dataType:'json',
contenType:'application/json',
    error:function(){
    alert('输入错误');
    }
}),
function success(data){
if(data!=null){
    alert('修改成功');
    }
}
}
</script>
</body>
</html>

select.html(查询)

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>查询</title>
<script src="js/jquery2.0.3.min.js"></script><!-- 引用jquery -->
</head>
<body>
<table>
<thead>
<tr>
     <td>ID</td>
     <td>用户名</td>
     <td>年龄</td>
</tr>
</thead>
<tbody id="thead">


</tbody>
</table>
<script type="text/javascript">
/**
 * 查询
 */
 
$(document).ready(function(){
  select();
  
});
function select(){
$.ajax({
url:'/user/findUser',
type:'post',
dataType:'json',
contenType:'application/json',
success:success

})
   function success(data){
    var htm='';
    for(var i=0;i<data.length;i++){
    htm+="<tr>";
    htm+="<td>"+data[i].id+"</td>";
    htm+="<td>"+data[i].username+"</td>";
    htm+="<td>"+data[i].age+"</td>";
    htm+="</tr>";
    }
    $("#thead").html(htm);
    }
$("#select").click(function() {
});
}


</script>
</body>
</html>

index.html(首页)

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>首页</title>
<style>
  .a{
    text-decoration: none;
    color:red;
  }
</style>
</head>
<body>
<div class="a">
<a href="add.html">添加</a><br/>
<a href="delete.html">删除</a><br/>
<a href="update.html">修改</a><br/>
<a href="select.html">查询</a><br/>
</div>
</body>
</html>

看到下面这个页面表示启动成功

访问页面数据显示成功

这样一个基本的整合就完成了,刚学的有不少瑕疵,大家有什么意见可以留言。

猜你喜欢

转载自blog.csdn.net/qq_25591259/article/details/80413253