zoukankan      html  css  js  c++  java
  • springboot+mybatis 第二波实现 含xml 和 注解 实现

    目录:

    数据库

    User

    package com.entity;
    
    import lombok.Data;
    import lombok.Getter;
    import lombok.Setter;
    import org.springframework.stereotype.Repository;
    
    @Data
    public class User {
        private int id;
        private String message;
    }
    

    UserMapper

    package com.mapper;
    
    import com.entity.User;
    import org.apache.ibatis.annotations.*;
    import org.springframework.stereotype.Repository;
    
    import java.sql.SQLException;
    import java.util.List;
    
    public interface UserMapper {
    
        @Select("select * from user where message = #{id}")
        List<User> getUserById2(long id);
    
    
        //    #单条查询
        @Select("select * from user where id = #{id}")
        User getUserById(long id);
    
        @Insert("insert into user(Message) values(#{id},#{message})")
    //    @Options(keyProperty = "id" , useGeneratedKeys = true)
        public int insterUser(User user);
    
        @Delete("delete from user where id = #{id}")
        void delStudentById(Integer id);
    
    
    }
    

    Mybatis720Application

    package com;
    
    import org.mybatis.spring.annotation.MapperScan;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    @SpringBootApplication
    @MapperScan("com.mapper")
    public class Mybatis720Application {
    
        public static void main(String[] args) {
            SpringApplication.run(Mybatis720Application.class, args);
        }
    
    }
    

    application.yml

    (如果要用xml方法写sql 记得把

    mybatis:的xml配置放开,并且写到
    mybatis:下面(下面还有个 mybatis:
    )--用mp时发现的问题

    ## 应用名称
    #spring.application.name=Mybatis_7_20
    #下面这些内容是为了让MyBatis映射
    #指定Mybatis的Mapper文件
    mybatis:
      mapper-locations: classpath:mappers/*xml
    #指定Mybatis的实体目录
      type-aliases-package: com.entity
    # 数据库驱动:
    spring:
      aop:
        proxy-target-class: true
      datasource:
        driver-class-name: com.mysql.cj.jdbc.Driver
    # 数据源名称
        name: defaultDataSource
    # 数据库连接地址
        url: jdbc:mysql://localhost:3306/datademo?serverTimezone=UTC
    # 数据库用户名&密码:
        username: root
        password: 669988
    # 应用服务 WEB 访问端口
    server:
      port: 8180
    

    UserMapperTest.java   (单元测试)

    package com.mapper;
    
    import com.entity.User;
    
    import net.minidev.json.JSONArray;
    import net.minidev.json.JSONObject;
    import org.apache.ibatis.session.SqlSession;
    import org.apache.logging.log4j.message.Message;
    import org.junit.Assert;
    import org.junit.Test;
    import org.junit.runner.RunWith;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.boot.test.context.SpringBootTest;
    import org.springframework.test.context.junit4.SpringRunner;
    import sun.font.CompositeFont;
    import org.apache.ibatis.session.SqlSessionFactory;
    
    import java.sql.SQLException;
    import java.util.List;
    
    
    @RunWith(SpringRunner.class)
    @SpringBootTest
    public class UserMapperTest {
    
        @Autowired
        private UserMapper userMapper;
    //    @Autowired
    //    private User user;
    
        @Test
        public void getUserById() throws SQLException {
    //       单条 查询
    //        User user = userMapper.getUserById(1);
    //        System.out.println(user.getId());
    
    
    ////      多条 查询
    //        List<User> user = userMapper.getUserById2(123);
    //        System.out.println(user);
    
    
    
    //        新增
    //        User user = new User();
    //        user.setId(14);
    //        user.setMessage("我是1");
    //        userMapper.insterUser(user);
    
    ////      删除
    //        userMapper.delStudentById(12);
    
    
    
        }
    
    }
    

    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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <groupId>com.example</groupId>
        <artifactId>Mybatis_7_20</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <name>Mybatis_7_20</name>
        <description>Demo project for Spring Boot</description>
    
        <properties>
            <java.version>1.8</java.version>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
            <spring-boot.version>2.3.7.RELEASE</spring-boot.version>
        </properties>
    
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-jdbc</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
            <!-- druid连接池 -->
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>druid</artifactId>
                <version>1.0.9</version>
            </dependency>
            <!-- lombok -->
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
            </dependency>
            <dependency>
                <groupId>org.mybatis.spring.boot</groupId>
                <artifactId>mybatis-spring-boot-starter</artifactId>
                <version>2.1.4</version>
            </dependency>
    
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <scope>runtime</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
                <exclusions>
                    <exclusion>
                        <groupId>org.junit.vintage</groupId>
                        <artifactId>junit-vintage-engine</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <scope>test</scope>
            </dependency>
        </dependencies>
    
        <dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-dependencies</artifactId>
                    <version>${spring-boot.version}</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency>
            </dependencies>
        </dependencyManagement>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.8.1</version>
                    <configuration>
                        <source>1.8</source>
                        <target>1.8</target>
                        <encoding>UTF-8</encoding>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                    <version>2.3.7.RELEASE</version>
                    <configuration>
                        <mainClass>com.Mybatis720Application</mainClass>
                    </configuration>
                    <executions>
                        <execution>
                            <id>repackage</id>
                            <goals>
                                <goal>repackage</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
    
    </project>
    

      

    单元测试快捷创建的方法:

    https://blog.csdn.net/u012430402/article/details/103788721

    参考文档: https://blog.csdn.net/u012430402/article/details/104580393

    使用xml文件查sql的话

    要建xml文件

    User.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="com.mapper.UserMapper">
    
        <!-- id要与接口中方法名保持一致,入参要入接口方法中入参类型保持一致,返回值要与实体类对应
        (一下这种方式要求表中的字段按驼峰命名规则转换后要与实体类中属性名称保持一致) -->
        <select id="getUserById" parameterType="java.lang.Long" resultType="com.entity.User">
        select * from user where id = #{id}
        </select>
    
    <!--    增加-->
    <!--    <insert id="insterUser" parameterType="com.entity.User" useGeneratedKeys="true">-->
        <insert id="insterUser" >
            insert into user(id,Message) values(#{id},#{message})
        </insert>
    <!--    https://www.cnblogs.com/zhouricong/p/9483099.html-->
    
    </mapper>
    

    UserMapper文件就可以不用写注解了

    参考文档: https://blog.csdn.net/u012430402/article/details/105011363 

  • 相关阅读:
    CDN使用心得
    IIS6.0实现SSL安全加密
    从print css谈样式表的媒介(media)属性
    ASP.NET文件下载各种方式比较:对性能的影响、对大文件的支持、对断点续传和多线程下载的支持
    “同名Cookie”的分析
    周末部门游玩顺德碧桂园度假村
    Linux特殊文件权限
    周末部门游玩广州长隆欢乐世界
    开个博客
    iOS TableView数据绑定的原则
  • 原文地址:https://www.cnblogs.com/kaibindirver/p/15047034.html
Copyright © 2011-2022 走看看