zoukankan      html  css  js  c++  java
  • spring boot mybatis

    mybatis-spring-boot-starter主要有两种解决方案,一种是使用注解解决一切问题,一种是简化后的老传统。无论哪种,第一步是必不可少的。

    无配置文件注解版

    第一步:添加依赖

    <dependency>
                <groupId>org.mybatis.spring.boot</groupId>
                <artifactId>mybatis-spring-boot-starter</artifactId>
                <version>1.3.2</version>
            </dependency>
    
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
            </dependency>

    第二步:在application.properties中添加MySql属性

    spring.datasource.driverClassName = com.mysql.jdbc.Driver
    spring.datasource.url = 
    spring.datasource.username = 
    spring.datasource.password = 

    注意:springboot会自动加载spring.datasource.*相关配置,数据源就会自动注入到sqlSessionFactory中,sqlSessionFactory会自动注入到Mapper中。

    在启动类中添加对mapper包扫描@MapperScan,或者直接在Mapper类上面添加注解@Mapper

    第三步:开发Mapper

    public interface TurbineDao {
    
        @Select("SELECT * FROM m_turbine WHERE turbine_code = #{turbineCode}")
        @Results({
            @Result(property = "turbineCode",  column = "turbine_code"),
            @Result(property = "deviceCode", column = "device_code")
        })
        public List<Turbine> findOne(String turbineCode);
        
    }

    注意1:

    • @Select 是查询类的注解,所有的查询均使用这个
    • @Result 修饰返回的结果集,关联实体类属性和数据库字段一一对应,如果实体类属性和数据库属性名保持一致,就不需要这个属性来修饰。
    • @Insert 插入数据库使用,直接传入实体类会自动解析属性到对应的值
    • @Update 负责修改,也可以直接传入对象
    • @delete 负责删除

    注意2:使用#符号和$符号的不同

    极简xml版本

    1、配置

    pom文件和上个版本一样,只是application.properties新增以下配置

    mybatis.config-location=classpath:mybatis/mybatis-config.xml
    mybatis.mapper-locations=classpath:mybatis/mapper/*.xml

    指定了mybatis基础配置文件和实体类映射文件的地址

    mybatis-config.xml 配置

    <configuration>
        <typeAliases>
            <typeAlias alias="Integer" type="java.lang.Integer" />
            <typeAlias alias="Long" type="java.lang.Long" />
    <typeAlias alias="String" type="java.lang.String" /> <typeAlias alias="HashMap" type="java.util.HashMap" /> <typeAlias alias="LinkedHashMap" type="java.util.LinkedHashMap" /> <typeAlias alias="ArrayList" type="java.util.ArrayList" /> <typeAlias alias="LinkedList" type="java.util.LinkedList" /> </typeAliases> </configuration>

    2、添加User的映射文件

    <mapper namespace="com.example.myproject.dao.TurbineDao" >
        <resultMap id="BaseResultMap" type="com.example.myproject.model.Turbine" >
            <result column="turbine_code" property="turbineCode" jdbcType="VARCHAR" />
            <result column="device_code" property="deviceCode" jdbcType="VARCHAR" />
        </resultMap>
         <sql id="Base_Column_List" >
            turbineCode, deviceCode
    </sql>
        <select id="findOne" resultMap="BaseResultMap"  parameterType="java.lang.String">
           SELECT 
           <include refid="Base_Column_List" />
           FROM m_turbine WHERE turbine_code = #{turbineCode}
    </select> </mapper>

    3.编写dao层代码

    public interface TurbineDao {
    
        public List<Turbine> findOne(String turbineCode);
        
    }

    作者:纯洁的微笑
    出处:www.ityouknow.com 
    版权所有,欢迎保留原文链接进行转载:)

  • 相关阅读:
    Python调用R语言
    走迷宫(用栈模拟实现非递归,并输出路径)
    走迷宫(用栈模拟实现非递归,并输出路径)
    《Python数据可视化编程实战》
    《Python数据可视化编程实战》
    一道思考题(二进制枚举的应用的想法)切金条
    Android 自己定义UI圆角button
    Oracle 用户管理(二)
    最大团解析及用处
    用反射完毕学生管理系统(包含数据库连接)
  • 原文地址:https://www.cnblogs.com/mcahkf/p/9599257.html
Copyright © 2011-2022 走看看