SpringBoot之整合Mybatis范例

依赖包:

  1 <?xml version="1.0" encoding="UTF-8"?>
  2 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  4     <modelVersion>4.0.0</modelVersion>
  5     <parent>
  6         <groupId>org.springframework.boot</groupId>
  7         <artifactId>spring-boot-starter-parent</artifactId>
  8         <version>2.1.1.RELEASE</version>
  9         <relativePath/> <!-- lookup parent from repository -->
 10     </parent>
 11     <groupId>org.springboot</groupId>
 12     <artifactId>demo</artifactId>
 13     <version>1.0.1-SNAPSHOT</version>
 14     <name>boot_demo</name>
 15     <description>Demo project for Spring Boot</description>
 16 
 17     <properties>
 18         <java.version>1.8</java.version>
 19         <dom4j.version>1.6.1</dom4j.version>
 20     </properties>
 21 
 22     <dependencies>
 23         <dependency>
 24             <groupId>org.springframework.boot</groupId>
 25             <artifactId>spring-boot-starter</artifactId>
 26         </dependency>
 27 
 28         <dependency>
 29             <groupId>org.springframework.boot</groupId>
 30             <artifactId>spring-boot-starter-test</artifactId>
 31             <scope>test</scope>
 32         </dependency>
 33         <dependency>
 34             <groupId>org.springframework.boot</groupId>
 35             <artifactId>spring-boot-starter-web</artifactId>
 36         </dependency>
 37 
 38         <dependency>
 39             <groupId>org.springframework.boot</groupId>
 40             <artifactId>spring-boot-devtools</artifactId>
 41             <optional>true</optional>
 42         </dependency>
 43 
 44         <!-- 引入freemarker包 -->
 45         <dependency>
 46             <groupId>org.springframework.boot</groupId>
 47             <artifactId>spring-boot-starter-freemarker</artifactId>
 48         </dependency>
 49 
 50         <dependency>
 51             <groupId>org.springframework.boot</groupId>
 52             <artifactId>spring-boot-starter-thymeleaf</artifactId>
 53         </dependency>
 54 
 55         <dependency>
 56             <groupId>org.springframework.boot</groupId>
 57             <artifactId>spring-boot-starter-data-jpa</artifactId>
 58         </dependency>
 59 
 60         <dependency>
 61             <groupId>mysql</groupId>
 62             <artifactId>mysql-connector-java</artifactId>
 63             <scope>runtime</scope>
 64         </dependency>
 65 
 66         <dependency>
 67             <groupId>org.springframework.boot</groupId>
 68             <artifactId>spring-boot-starter-jdbc</artifactId>
 69         </dependency>
 70 
 71         <dependency>
 72             <groupId>org.mybatis.spring.boot</groupId>
 73             <artifactId>mybatis-spring-boot-autoconfigure</artifactId>
 74             <version>1.3.2</version>
 75         </dependency>
 76 
 77         <dependency>
 78             <groupId>commons-io</groupId>
 79             <artifactId>commons-io</artifactId>
 80             <version>2.6</version>
 81         </dependency>
 82 
 83         <dependency>
 84             <groupId>org.mybatis</groupId>
 85             <artifactId>mybatis</artifactId>
 86             <version>3.4.6</version>
 87         </dependency>
 88 
 89         <dependency>
 90             <groupId>org.mybatis</groupId>
 91             <artifactId>mybatis-spring</artifactId>
 92             <version>1.3.2</version>
 93         </dependency>
 94 
 95         <!-- spring事务 -->
 96         <dependency>
 97             <groupId>org.springframework</groupId>
 98             <artifactId>spring-tx</artifactId>
 99         </dependency>
100 
101         <dependency>
102             <groupId>dom4j</groupId>
103             <artifactId>dom4j</artifactId>
104             <version>${dom4j.version}</version>
105         </dependency>
106     </dependencies>
107 
108     <build>
109         <plugins>
110             <plugin>
111                 <groupId>org.springframework.boot</groupId>
112                 <artifactId>spring-boot-maven-plugin</artifactId>
113                 <configuration>
114                     <fork>true</fork>
115                 </configuration>
116             </plugin>
117         </plugins>
118     </build>
119 
120 </project>

 

配置文件application.properties:

#数据库配置
spring.datasource.url=jdbc:mysql://20.1.1.11:16306/gxrdb?useUnicode=true&characterEncoding=utf-8
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driverClassNamee=com.mysql.jdbc.Driver

#mybatis.config-locations=classpath:mybatis/mybatis-config.xml
mybatis.mapper-locations=classpath:mapper/*.xml
mybatis.type-aliases-package=org.springboot.model

 

model:

 1 package org.springboot.model;
 2 
 3 /**
 4  * @Auther:GongXingRui
 5  * @Date:2018/12/24
 6  * @Description:
 7  **/
 8 public class Student {
 9     private String id;
10     private String name;
11     private String gender;
12     private int age;
13     private String telephone;
14 
15     public Student() {
16 
17     }
18 
19     public Student(String id, String name, String gender) {
20         this.id = id;
21         this.name = name;
22         this.gender = gender;
23     }
24 
25     public Student(String id, String name, String gender, int age, String telephone) {
26         this.id = id;
27         this.name = name;
28         this.gender = gender;
29         this.age = age;
30         this.telephone = telephone;
31     }
32 
33     public String getId() {
34         return id;
35     }
36 
37     public void setId(String id) {
38         this.id = id;
39     }
40 
41     public String getName() {
42         return name;
43     }
44 
45     public void setName(String name) {
46         this.name = name;
47     }
48 
49     public String getGender() {
50         return gender;
51     }
52 
53     public void setGender(String gender) {
54         this.gender = gender;
55     }
56 
57     public int getAge() {
58         return age;
59     }
60 
61     public void setAge(int age) {
62         this.age = age;
63     }
64 
65     public String getTelephone() {
66         return telephone;
67     }
68 
69     public void setTelephone(String telephone) {
70         this.telephone = telephone;
71     }
72 
73     @Override
74     public String toString() {
75         return "Student{" +
76                 "id='" + id + '\'' +
77                 ", name='" + name + '\'' +
78                 ", gender='" + gender + '\'' +
79                 ", age=" + age +
80                 ", telephone='" + telephone + '\'' +
81                 '}';
82     }
83 }
View Code

 

 

mapper接口

 1 package org.springboot.mapper;
 2 
 3 import org.apache.ibatis.annotations.Mapper;
 4 import org.springboot.model.Student;
 5 
 6 import java.util.List;
 7 
 8 /**
 9  * @Auther:GongXingRui
10  * @Date:2018/12/26
11  * @Description:
12  **/
13 @Mapper
14 public interface StudentMapper {
15     Student getStudentById(String id);
16 
17     List<Student> getAllStudent();
18 
19     void addStudent(Student student);
20 
21     void deleteStudentById(String id);
22 
23 }

 

 

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="org.springboot.mapper.StudentMapper">

    <!--<resultMap id="BaseResultMap" type="org.springboot.model.Student" >-->
    <!--<id column="id" property="id" jdbcType="VARCHAR" />-->
    <!--<result column="name" property="name" jdbcType="VARCHAR" />-->
    <!--<result column="age" property="age" jdbcType="INTEGER" />-->
    <!--<result column="gender" property="gender" jdbcType="VARCHAR"/>-->
    <!--<result column="telephone" property="telephone" jdbcType="VARCHAR"/>-->
    <!--</resultMap>-->

    <!--<select id="getStudentById" parameterType="java.lang.String" resultMap="BaseResultMap">-->
    <!--select * from t_student where id = #{id}-->
    <!--</select>-->

    <select id="getStudentById" parameterType="java.lang.String" resultType="org.springboot.model.Student">
        select * from t_student where id = #{id}
    </select>

    <insert id="addStudent" parameterType="org.springboot.model.Student">
        insert into t_student (id, name, gender, age,telephone) values (#{id} ,#{name}, #{gender},#{age,jdbcType=INTEGER},#{telephone})
    </insert>

    <!--字段可能为空的情况,需要指定数据类型-->
    <!--<insert id="addStudent" parameterType="org.springboot.model.Student">-->
        <!--insert into t_student (id, name, gender, age,telephone) values (#{id} ,#{name}, #{gender},#{age,jdbcType=INTEGER},#{telephone,jdbcType=CHAR})-->
    <!--</insert>-->

    <delete id="deleteStudentById" parameterType="java.lang.String">
        DELETE FROM t_student WHERE id = #{id}
    </delete>

    <select id="getAllStudent" resultType="org.springboot.model.Student">
        select * from t_student
    </select>

</mapper>

 

service:

 1 package org.springboot.service;
 2 
 3 import org.springboot.mapper.StudentMapper;
 4 import org.springboot.model.Student;
 5 import org.springboot.utils.ObjectUtils;
 6 import org.springframework.beans.factory.annotation.Autowired;
 7 import org.springframework.stereotype.Service;
 8 
 9 import java.util.List;
10 
11 /**
12  * @Auther:GongXingRui
13  * @Date:2018/12/24
14  * @Description:
15  **/
16 @Service
17 public class StudentService {
18 
19     @Autowired
20     private StudentMapper studentMapper;
21 
22     public Student getStudentDemo() {
23         Student student = new Student();
24         student.setId("1");
25         student.setName("小明");
26         student.setGender("男");
27         student.setAge(18);
28         student.setTelephone("137456678");
29         return student;
30     }
31 
32     public Student getStudentById(String id) {
33         return studentMapper.getStudentById(id);
34     }
35 
36     public List<Student> getAllStudent() {
37         return studentMapper.getAllStudent();
38     }
39 
40     public void addStudent(Student student) {
41         studentMapper.addStudent(student);
42     }
43 
44     public void deleteStudentById(String id) {
45         studentMapper.deleteStudentById(id);
46     }
47 
48     public boolean loginStudentcheck(String name, String id) {
49         Student student = studentMapper.getStudentById(id);
50         if (ObjectUtils.isNull(student)) {
51             return false;
52         } else if (student.getName().equals(name)) {
53             return true;
54         }
55         return false;
56     }
57 
58 }

 

controller

  1 package org.springboot.controller;
  2 
  3 import com.sun.jmx.snmp.SnmpUnknownModelLcdException;
  4 import com.sun.org.apache.xpath.internal.operations.Mod;
  5 import org.apache.logging.log4j.LogManager;
  6 import org.apache.logging.log4j.Logger;
  7 import org.springboot.mapper.StudentMapper;
  8 import org.springboot.model.Student;
  9 import org.springboot.service.StudentService;
 10 import org.springframework.beans.factory.annotation.Autowired;
 11 import org.springframework.stereotype.Controller;
 12 import org.springframework.ui.Model;
 13 import org.springframework.web.bind.annotation.RequestBody;
 14 import org.springframework.web.bind.annotation.RequestMapping;
 15 import org.springframework.web.bind.annotation.RequestParam;
 16 import org.springframework.web.bind.annotation.ResponseBody;
 17 import org.springframework.web.servlet.ModelAndView;
 18 
 19 import java.util.List;
 20 
 21 
 22 /**
 23  * @Auther:GongXingRui
 24  * @Date:2018/12/24
 25  * @Description:
 26  **/
 27 @Controller
 28 public class StudentController {
 29     private Logger logger = LogManager.getLogger(StudentController.class);
 30     @Autowired
 31     StudentService studentService;
 32 
 33     @RequestMapping("/showStudentInfo")
 34     public String showStudentInfo(Model model) {
 35         logger.info("查询学生信息");
 36         Student student = studentService.getStudentDemo();
 37         logger.info(student);
 38         model.addAttribute("student", student);
 39         return "studentInfo.html";
 40     }
 41 
 42     // 使用freemaker模板
 43     @RequestMapping("/showStudentInfo2")
 44     public String showStudentInfo2(Model model) {
 45         logger.info("查询学生信息");
 46         Student student = studentService.getStudentDemo();
 47         logger.info(student);
 48         model.addAttribute("student", student);
 49         return "studentInfo2";
 50     }
 51 
 52     @RequestMapping("/studentIndex")
 53     public String studentIndex() {
 54         logger.info("学生信息首页");
 55         return "student/studentIndex";
 56     }
 57 
 58     @RequestMapping("/getStudentById")
 59     @ResponseBody
 60     public String getStudentById(String id) {
 61         logger.info("通过ID查询学生信息");
 62         Student student = studentService.getStudentById(id);
 63         if (null == student) {
 64             String tip = "没有找到对应数据 -> id:" + id;
 65             logger.info(tip);
 66             return tip;
 67         }
 68         logger.info(student);
 69         return student.toString();
 70     }
 71 
 72     @RequestMapping("/getStudentById2")
 73     public String getStudentById2(String id, Model model) {
 74         logger.info("通过ID查询学生信息2");
 75         Student student = studentService.getStudentById(id);
 76         if (null == student) {
 77             String tip = "没有找到对应数据 -> id:" + id;
 78             logger.info(tip);
 79             return null;
 80         }
 81         model.addAttribute("student", student);
 82         logger.info(student);
 83         return "student/studentInfo";
 84     }
 85 
 86     @RequestMapping("/getAllStudent")
 87     public ModelAndView getAllStudent(ModelAndView mv) {
 88         logger.info("查询所有学生信息");
 89         List<Student> students = studentService.getAllStudent();
 90         mv.addObject("studentList", students);
 91         mv.setViewName("student/allStudentInfo");
 92         logger.info(students);
 93         return mv;
 94     }
 95 
 96     @RequestMapping("/addStudent")
 97     @ResponseBody
 98     public String addStudent(Student student) {
 99         logger.info("新增学生信息");
100         try {
101             studentService.addStudent(student);
102         } catch (Exception e) {
103             e.printStackTrace();
104             return "新增学生信息发生异常!<br>" + e.toString();
105         }
106         logger.info(student.toString());
107         return "新增学生信息成功!<br>" + student.toString();
108     }
109 
110     @RequestMapping("/deleteStudentById")
111     @ResponseBody
112     public String deleteStudentById(String id) {
113         logger.info("通过ID删除学生信息");
114         try {
115             studentService.deleteStudentById(id);
116         } catch (Exception e) {
117             e.printStackTrace();
118             return "通过ID删除学生信息发生异常!<br>" + e.toString();
119         }
120         logger.info("通过ID删除学生信息成功! -> id:" + id);
121         return "通过ID删除学生信息成功! -> id:" + id;
122     }
123 
124     @RequestMapping("/loginStudentcheck")
125     public String loginStudentcheck(String name, String id, Model model) {
126         logger.info("正在登陆学生系统...");
127         logger.info("用户名:" + name + ", 密码:" + id);
128         boolean flag = studentService.loginStudentcheck(name, id);
129         if (flag) {
130             logger.info("登陆成功");
131             return "student/studentIndex";
132         }
133         model.addAttribute("info", "登陆失败!用户名或密码错误!");
134         logger.info("登陆失败!用户名或密码错误!");
135         return "student/error";
136     }
137 
138     @RequestMapping("/loginStudent")
139     public String loginStudent() {
140         logger.info("请求登陆学生信息页面");
141         return "student/loginStudent";
142     }
143 
144 
145 }

 

程序入口:DemoApplication.java

 1 package org.springboot;
 2 
 3 import org.mybatis.spring.annotation.MapperScan;
 4 import org.springframework.boot.SpringApplication;
 5 import org.springframework.boot.autoconfigure.SpringBootApplication;
 6 
 7 @SpringBootApplication
 8 @MapperScan("org.springboot.mapper")
 9 public class DemoApplication {
10     public static void main(String[] args) {
11         SpringApplication.run(DemoApplication.class, args);
12     }
13 
14 }

 

工程目录:

 

posted @ 2018-12-28 11:03  星瑞  阅读(267)  评论(0编辑  收藏  举报