springboot整合springmvc和Mybatis,連接數據庫的細節操作


1、建立項目

2、改pom文件 

<!-- 修改jdk版本 -->
  <properties>
  	<java.version>1.7</java.version>
  	<thymeleaf.version>3.0.2.RELEASE</thymeleaf.version>
  	<thymeleaf-layout-dialect.version>2.0.4</thymeleaf-layout-dialect.version>
  </properties>
  <dependencies>
  <!-- springboot web啟動器 -->
 	 <dependency>
  		<groupId>org.springframework.boot</groupId>
  		<artifactId>spring-boot-starter-web</artifactId>
 	 </dependency>
  <!-- springboot thymeleaf啟動器 -->
 	 <dependency>
  		<groupId>org.springframework.boot</groupId>
  		<artifactId>spring-boot-starter-thymeleaf</artifactId>
 	 </dependency>
  <!-- Mybatis -->
 	 <dependency>
  		<groupId>org.mybatis.spring.boot</groupId>
  		<artifactId>mybatis-spring-boot-starter</artifactId>
  		<version>1.1.1</version>
 	 </dependency>
 	<!-- Mysql -->
 	<dependency>
  		<groupId>mysql</groupId>
  		<artifactId>mysql-connector-java</artifactId>
 	 </dependency>
 	 <!-- 數據庫連接池 -->
 	<dependency>
  		<groupId>com.alibaba</groupId>
  		<artifactId>druid</artifactId>
  		<version>1.0.9</version>
 	 </dependency>
  </dependencies>

  在classpath/跟下起個applicattion.properties文件。內容如下

spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/bbs
spring.datasource.username=root
spring.datasource.password=root

spring.datasource.type=com.alibaba.druid.pool.DruidDataSource

mybatis.type-aliases-package = com.zhu.pojo //給包起別名

  

3、 創建實體類

package com.zhu.pojo;

public class Users {
    private Integer id;
    private String name;
    private Integer age;
    public Users() {
        super();
    }
    
    public Users(Integer id, String name, Integer age) {
        super();
        this.id = id;
        this.name = name;
        this.age = age;
    }

    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
}
View Code

4、創建mapper接口和配置文件

編譯時會出錯,原因是xml文件少了頭部

<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

package com.zhu.mapper;

import com.zhu.pojo.Users;

public interface UsersMapper {
    void insertUser(Users users);
}
View Code
<?xml version="1.0" encoding="UTF-8"?>
<mapper namespace="com.zhu.mapper.UsersMapper">
    <insert id = "insertUser" parameterType="users">
        insert into user(name,age) values(#{name},#{age})
    </insert>
</mapper>
View Code

 

 5、業務層service和他的impl類

package com.zhu.service;

import com.zhu.pojo.Users;

public interface UsersService {
    void addUser(Users users);
}
View Code
package com.zhu.impl;

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

import com.zhu.mapper.UsersMapper;
import com.zhu.pojo.Users;
import com.zhu.service.UsersService;

@Service
@Transactional
public class SreviceImpl implements UsersService {
    @Autowired
    private UsersMapper usersMapper;
    
    @Override
    public void addUser(Users users) {
        this.usersMapper.insertUser(users);

    }

}
View Code

 

 6、創建comtroller 和index頁面和成功頁面

package com.zhu.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;

import com.zhu.pojo.Users;
import com.zhu.service.UsersService;

@Controller
@RequestMapping("/user")
public class UserController {
    private UsersService usersService;
    /*
     * 頁面跳轉
     */
    @RequestMapping("/{page}")
    public String showPage(@PathVariable String page) {
        return page;
    }
    
    /*
     * 添加用戶
     */
    @RequestMapping("/addUser")
    public String addUser(Users users) {
        this.usersService.addUser(users);
        return "ok";
    }
}
View Code
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>添加用戶</title>
</head>
<body>
    <form th:action="@{/user/addUser}" method = "post">
        用戶名字:<input type="text" name="name"></input><br/>
        用戶年齡:<input type="text" name="age"></input><br/>
        <input type="submit" value ="確認"></input><br/>
    </form>
</body>
</html>
View Code
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>成功</title>
</head>
<body>
    操作成功
</body>
</html>
View Code

 7、啟動類,注意啟動類中葯多一個注解@MapperScan("com.zhu.mapper") //用於掃描Mybatis的Mapper接口,不然會產生異常

Field usersMapper in com.zhu.impl.SreviceImpl required a bean of type 'com.zhu.mapper.UsersMapper' that could not be found.

其中MapperScan()里的路徑是Mapper的路徑

package com.zhu;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@MapperScan("com.zhu.mapper")    //用於掃描Mybatis的Mapper接口
public class App {

    public static void main(String[] args) {
        SpringApplication.run(App.class, args);
    }

}
View Code

 

 

文檔根元素 "mapper" 必須匹配 DOCTYPE 根 "null"

啟動項目的時候報了這個錯,網上找了雖然沒有完全匹配的,但是解決方法是一樣的,mybatis的xml文件文件頭問題,開發人員復制粘貼的時候少復制了部分內容,原來報錯的寫法:

<?xml version="1.0" encoding="UTF-8"?>
<mapper namespace="com.test.mapper.TestMapper">

<insert id="test" useGeneratedKeys="true">
xxx
</insert>

</mapper>

正確頭文件應該加上

<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM