最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

前言

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

一、引入依賴(lài)項(xiàng)

因?yàn)槭莔ybatis嘛,肯定是要有mybatis相關(guān)的,同時(shí)用的是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)建了一個(gè)User的model,這樣方便與數(shù)據(jù)庫(kù)的表對(duì)照,這里在mysql中創(chuàng)建了一個(gè)名為mybatis的數(shù)據(jù)庫(kù),里面創(chuàng)建了一個(gè)user的表.同時(shí)創(chuàng)建了枚舉類(lèi)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ù)庫(kù)的sql對(duì)照起來(lái),用什么對(duì)照呢?那就需要?jiǎng)?chuàng)建一個(gè)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,一個(gè)是顯示所有用戶(hù),一個(gè)是新增一個(gè)用戶(hù)之后再顯示所有用戶(hù)。

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ù)庫(kù)配置

上面mapper也設(shè)置了,model也設(shè)置了,那要與數(shù)據(jù)庫(kù)交互,肯定要配置數(shù)據(jù)庫(kù)地址這些信息吧。這里在運(yùn)行的時(shí)候還報(bào)了一個(gè)錯(cuò)誤.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è)置了下時(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)建頁(yè)面顯示

這里還是按照上一博客用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>

八、測(cè)試

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

九、小結(jié)

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

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

相關(guān)文章

最新評(píng)論

长沙县| 梅州市| 陆丰市| 裕民县| 定南县| 昌宁县| 聂荣县| 昌宁县| 普安县| 英德市| 湘阴县| 凤冈县| 庆安县| 务川| 哈巴河县| 新乐市| 舒城县| 夏河县| 犍为县| 大洼县| 沁阳市| 镇雄县| 调兵山市| 中山市| 湟源县| 东乡县| 宜宾市| 景宁| 封开县| 都匀市| 香港| 本溪市| 河西区| 安吉县| 绥滨县| 泰州市| 高淳县| 瓦房店市| 南陵县| 乡宁县| 若羌县|