欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Spring Boot基礎(chǔ)入門之基于注解的Mybatis

 更新時間:2018年07月11日 09:14:42   作者:小崔的筆記本  
這篇文章主要給大家介紹了關(guān)于Spring Boot基礎(chǔ)入門之基于注解的Mybatis的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

前言

今天學(xué)習(xí)下SpringBoot集成mybatis,集成mybatis一般有兩種方式,一個是基于注解的一個是基于xml配置的。今天先了解下基于注解的mybatis集成。下面話不多說了,來一起看看詳細(xì)的介紹吧

一、引入依賴項

因為是mybatis嘛,肯定是要有mybatis相關(guān)的,同時用的是mysql,所以也需要引入mysql相關(guān)的。

<!-- https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter -->
 <dependency>
 <groupId>org.mybatis.spring.boot</groupId>
 <artifactId>mybatis-spring-boot-starter</artifactId>
 <version>1.3.2</version>
 </dependency>
 <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
 <dependency>
 <groupId>mysql</groupId>
 <artifactId>mysql-connector-java</artifactId>
 <version>8.0.11</version>
 </dependency>

二、創(chuàng)建model

這里創(chuàng)建了一個User的model,這樣方便與數(shù)據(jù)庫的表對照,這里在mysql中創(chuàng)建了一個名為mybatis的數(shù)據(jù)庫,里面創(chuàng)建了一個user的表.同時創(chuàng)建了枚舉類UserSexEnum.

CREATE TABLE `user` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `name` varchar(20) DEFAULT NULL,
 `age` int(11) DEFAULT NULL,
 `sex` varchar(20) DEFAULT NULL,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8;
package com.example.model;

import java.io.Serializable;

public class User implements Serializable{
 @Override
 public String toString() {
 // TODO Auto-generated method stub
 return "User [id=" + Id + ", name=" + Name + ", age=" + Age + "]";

 }

 public int getId() {
 return Id;
 }
 public void setId(int id) {
 Id = id;
 }
 public String getName() {
 return Name;
 }
 public void setName(String name) {
 Name = name;
 }
 public int getAge() {
 return Age;
 }
 public void setAge(int age) {
 Age = age;
 }
 private int Id;
 private String Name;
 private int Age; 
 
 private UserSexEnum Sex;

 public UserSexEnum getSex() {
 return Sex;
 }
 public void setSex(UserSexEnum sex) {
 Sex = sex;
 }
}
package com.example.model;

public enum UserSexEnum {
 MAN, WOMAN
}

三、創(chuàng)建Mapper

這里需要把model與操作數(shù)據(jù)庫的sql對照起來,用什么對照呢?那就需要創(chuàng)建一個mapper.這里有增刪改查。

package com.example.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Result;
import org.apache.ibatis.annotations.Results;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import com.example.model.*;;
public interface UserMapper {
 @Select("SELECT * FROM user")
 @Results({
 @Result(property = "Sex", column = "sex", javaType = UserSexEnum.class),
 @Result(property = "Name", column = "name")

 })

 List<User> getAll();
 @Select("SELECT * FROM user WHERE id = #{id}")

 @Results({
 @Result(property = "Sex", column = "sex", javaType = UserSexEnum.class),
 @Result(property = "Name", column = "name")
 })

 User getOne(int id);
 @Insert("INSERT INTO user(name,age,sex) VALUES(#{name}, #{age}, #{sex})")
 void insert(User user);
 @Update("UPDATE user SET name=#{userName},age=#{age} WHERE id =#{id}")
 void update(User user);
 @Delete("DELETE FROM user WHERE id =#{id}")
 void delete(int id);
}

四、配置掃描

上面配置了mapper,那怎么讓系統(tǒng)知道m(xù)apper放在哪里呢?于是有了@MapperScan注解。

package com.example.demo;

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

@SpringBootApplication
@MapperScan("com.example.mapper")
public class DemoApplication {

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

五、創(chuàng)建Controller

這里創(chuàng)建了UserController,一個是顯示所有用戶,一個是新增一個用戶之后再顯示所有用戶。

package com.example.demo;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import com.example.mapper.UserMapper;
import com.example.model.User;
import com.example.model.UserSexEnum;

@Controller
@RequestMapping("/user")
public class UserController {
 
 @Autowired
 private UserMapper userMapper;
 
 @RequestMapping(value = "/alluser.do",method = RequestMethod.GET)
 public String getallusers(Model model) {
 List<User> users=userMapper.getAll();
 model.addAttribute("users", users);
 return "userlist";
 }
 @RequestMapping(value = "/insert.do",method = RequestMethod.GET)
 public String adduser(Model model) {
 User user=new User();
 user.setName("cuiyw");
 user.setAge(27);
 user.setSex(UserSexEnum.MAN);
  
 userMapper.insert(user);
 List<User> users=userMapper.getAll();
 model.addAttribute("users", users);
 return "userlist";
 }
}

六、數(shù)據(jù)庫配置

上面mapper也設(shè)置了,model也設(shè)置了,那要與數(shù)據(jù)庫交互,肯定要配置數(shù)據(jù)庫地址這些信息吧。這里在運行的時候還報了一個錯誤.nested exception is java.sql.SQLException: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.在mysql中設(shè)置了下時區(qū):set global time_zone='+8:00';

spring.mvc.view.prefix=/view/

spring.mvc.view.suffix=.jsp
mybatis.type-aliases-package=com.example.model

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

七、創(chuàng)建頁面顯示

這里還是按照上一博客用jsp顯示數(shù)據(jù)。

<%@ page language="java" contentType="text/html; charset=utf-8"
 pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
 <table>
 <tr><th>名字</th><th>年齡</th><th>性別</th></tr>
 <c:forEach items="${users}" var="item">
  <tr><td>${item.name}</td><td>${item.age}</td><td>${item.sex}</td></tr>
 </c:forEach>
 </table>
</body>
</html>

八、測試

這里先在瀏覽器打開http://localhost:8080/user/alluser.do,可以看到用戶列表,然后輸入http://localhost:8080/user/insert.do,就會看到列表顯示多了一行數(shù)據(jù)。

九、小結(jié)

使用基于注解的集成mybatis比較省事方便,但有利有弊,對于多表相連的可能就不太方便,使用基于xml配置的可能就更會好些。

好了,以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

  • SpringBoot安全策略開發(fā)之集成數(shù)據(jù)傳輸加密

    SpringBoot安全策略開發(fā)之集成數(shù)據(jù)傳輸加密

    這篇文章主要介紹了SpringBoot集成數(shù)據(jù)傳輸加密,近期在對開發(fā)框架安全策略方面進(jìn)行升級優(yōu)化,提供一些通用場景的解決方案,本文針對前后端數(shù)據(jù)傳輸加密進(jìn)行簡單的分享
    2023-01-01
  • Spring中的事務(wù)控制知識總結(jié)

    Spring中的事務(wù)控制知識總結(jié)

    我們講了轉(zhuǎn)賬方法存在著事務(wù)問題,當(dāng)在業(yè)務(wù)層方法更新轉(zhuǎn)入賬戶時發(fā)現(xiàn)異常,更新收款方賬戶則會出錯.當(dāng)時是通過自定義事務(wù)管理器進(jìn)行整體事務(wù)的處理.其實Spring 提供了業(yè)務(wù)層的事務(wù)處理解決方案,并且 Spring 的事務(wù)控制都是基于 AOP 的,需要的朋友可以參考下
    2021-06-06
  • 淺析Java如何優(yōu)雅的設(shè)計接口狀態(tài)碼和異常

    淺析Java如何優(yōu)雅的設(shè)計接口狀態(tài)碼和異常

    HTTP協(xié)議里定義了一系列的狀態(tài)碼用來表明請求的狀態(tài),如常用的200表示請求正常,404表示請求的資源不存在,所以本文就來和大家討論一下如何優(yōu)雅的設(shè)計接口狀態(tài)碼和異常,感興趣的可以了解下
    2024-03-03
  • 淺談兩個jar包中包含完全相同的包名和類名的加載問題

    淺談兩個jar包中包含完全相同的包名和類名的加載問題

    下面小編就為大家?guī)硪黄獪\談兩個jar包中包含完全相同的包名和類名的加載問題。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • java實現(xiàn)人民幣大小寫轉(zhuǎn)換方法分享

    java實現(xiàn)人民幣大小寫轉(zhuǎn)換方法分享

    本文介紹java人民幣數(shù)字大小寫轉(zhuǎn)換方法,代碼中有注釋,大家直接看代碼吧
    2014-01-01
  • Java自定義異常與異常使用的最佳方式

    Java自定義異常與異常使用的最佳方式

    這篇文章主要介紹了Java自定義異常與異常使用的最佳方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • SpringBoot?web靜態(tài)資源映射實現(xiàn)步驟詳解

    SpringBoot?web靜態(tài)資源映射實現(xiàn)步驟詳解

    在springBoot中的靜態(tài)資源的映射是通過SpringMVC中的resourceHttpRequestHandler來進(jìn)行實現(xiàn)的。在該請求映射器中默認(rèn)規(guī)定了,SpringBoot會將classPath或者ServletContext下的/static?(/public、/resources?或?/META-INF/resources)目錄中,存放靜態(tài)資源
    2022-09-09
  • 一文詳解Mybatis-plus的介紹與使用

    一文詳解Mybatis-plus的介紹與使用

    Mybatis-Plus?是?MyBatis?的一個增強工具,專門針對于傳統(tǒng)MyBatis開發(fā)中sql需要手動進(jìn)行映射配置繁瑣缺點的一款框架技術(shù)。本文將為大家詳細(xì)講講Mybatis-plus的介紹與使用,感興趣的可以了解一下
    2022-07-07
  • vue+springboot讀取git的markdown文件并展示功能

    vue+springboot讀取git的markdown文件并展示功能

    Markdown-it 是一個用于解析和渲染 Markdown 標(biāo)記語言的 JavaScript 庫,使用 Markdown-it,你可以將 Markdown 文本解析為 HTML 輸出,并且可以根據(jù)需要添加功能、擴展語法或修改解析行為,本文介紹vue+springboot讀取git的markdown文件并展示,感興趣的朋友一起看看吧
    2024-01-01
  • Spring關(guān)閉Tomcat Servlet容器時內(nèi)存泄漏問題解決方案

    Spring關(guān)閉Tomcat Servlet容器時內(nèi)存泄漏問題解決方案

    這篇文章主要介紹了Spring關(guān)閉Tomcat Servlet容器時內(nèi)存泄漏問題解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-10-10

最新評論