Mybatis && Mybatis-plus

导读:

Mybatis:

1.依赖包

(1)spring:

1         <dependency>
2             <groupId>org.mybatis</groupId>
3             <artifactId>mybatis</artifactId>
4             <version>3.5.2</version>
5         </dependency>
1         <dependency>
2             <groupId>org.mybatis</groupId>
3             <artifactId>mybatis-spring</artifactId>
4             <version>1.3.2</version>
5         </dependency>

(2)spring boot:

1         <dependency>
2             <groupId>org.mybatis.spring.boot</groupId>
3             <artifactId>mybatis-spring-boot-starter</artifactId>
4             <version>2.1.0</version>
5         </dependency>

2.配置:

(1)spring:

  • 新建一个mybatis的l配置文件mybatis-config.xml,用于mybatis基本信息的配置
     1 <?xml version="1.0" encoding="UTF-8" ?>
     2 <!DOCTYPE configuration
     3         PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
     4         "http://mybatis.org/dtd/mybatis-3-config.dtd">
     5 
     6 <configuration>
     7 
     8     <!--加载数据库配置文件-->
     9     <properties resource="db.properties"/>
    10 
    11     <!--常用设置-->
    12     <settings>
    13         <!-- 懒加载。如果设为‘false',则所有相关联的都会被初始化加载。 -->
    14         <setting name="lazyLoadingEnabled" value="true"/>
    15         <!-- 当设置为‘true'的时候,懒加载的对象可能被任何懒属性全部加载。否则,每个属性都按需加载。 -->
    16         <setting name="aggressiveLazyLoading" value="false"/>
    17         <!--日志信息打印-->
    18         <setting name="logImpl" value="STDOUT_LOGGING"/>
    19         <!--缓存设置-->
    20         <setting name="cacheEnabled" value="true"/>
    21         <!--驼峰命名-->
    22         <setting name="mapUnderscoreToCamelCase" value="true"/>
    23     </settings>
    24 
    25     <!--别名设置-->
    26     <typeAliases>
    27         <package name="com.wsw.entity"/>
    28     </typeAliases>
    29 
    30     <!--插件配置-->
    31     <plugins>
    32         <plugin interceptor=""></plugin>
    33     </plugins>
    34 
    35     <!--环境配置-->
    36     <environments default="">
    37         <environment id="">
    38             <!--事务管理-->
    39             <transactionManager type="">
    40                 <property name="" value=""/>
    41             </transactionManager>
    42             <!--数据源配置-->
    43             <dataSource type="">
    44                 <property name="" value=""/>
    45                 <property name="" value=""/>
    46             </dataSource>
    47         </environment>
    48     </environments>
    49 
    50     <!--映射文件配置:下面三种方式可随机采用其中一种-->
    51     <mappers>
    52         <!--相对路径文件映射-->
    53         <mapper resource=""/>
    54         <!--绝对路径文件映射-->
    55         <mapper url=""/>
    56         <!--包映射-->
    57         <package name=""/>
    58     </mappers>
    59 
    60 </configuration>
  • 在spring的配置文件applicationContext.xml中配置mybatis的sqlSessionFactory,同时加载mybatis的配置文件:
    1 <!-- 配置sqlSessionFactory,SqlSessionFactoryBean是用来产生sqlSessionFactory的 -->
    2     <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    3         <!-- 加载mybatis的全局配置文件 -->
    4         <property name="configLocation" value="classpath:mybatis-config.xml"/>
    5     </bean>

(2)spring boot(yaml):

  • 在spring boot的全局配置文件application.yaml中配置mybatis相关属性:
     1 mybatis-plus:
     2   #别名设置
     3   type-aliases-package: com.wsw.springboot.entity
     4   #加载mybatis全局配置文件
     5   #config-location:  src/main/resources/mybatis-config.xml
     6   #映射文件扫描
     7   #mapper-locations:
     8   configuration:
     9     #懒加载设置
    10     lazy-loading-enabled: true
    11     #日志打印
    12     #log-impl:
    13     #驼峰命名
    14     map-underscore-to-camel-case: true
    15     #缓存设置
    16     cache-enabled: true
    17     #主键自动生成并获取
    18     use-generated-keys: true   

3.使用:

实体类:

 1 @Data
 2 @ToString
 3 @AllArgsConstructor
 4 @NoArgsConstructor
 5 public class User {
 6     /**
 7      * 用户编号
 8      */
 9     private int uId;
10     /**
11      * 用户姓名
12      */
13     private String uName;
14     /**
15      * 用户性别
16      */
17     private int uSex;
18     /**
19      * 用户年龄
20      */
21     private int uAge;
22     /**
23      * 用户身份证
24      */
25     private String uIdentity;
26     /**
27      * 用户出生日期
28      */
29     private Timestamp uBirth;
30     /**
31      * 关联学校:1:1
32      */
33     private School school;
34 }

dao层接口:

 1 @Repository
 2 public interface UserDao {
 3 
 4     /**
 5      * 查看所有用户
 6      * @return
 7      */
 8     List<User> selectAll();
 9 
10     /**
11      * 插入一条用户记录
12      * @param user
13      */
14     void insertOne(User user);
15 
16     /**
17      * 分页查询
18      * @param pageNum:偏移量,代表从第pageNum+1的位置开始取记录
19      * @param pageCount:取记录的总数
20      * @return
21      */
22     List<User> selectByPageNo(@Param("pageNum") int pageNum, @Param("pageCount") int pageCount);
23 
24     /**
25      * 查询所有记录数
26      * @return
27      */
28     int selectTotalCount();
29 
30 }

映射文件:

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD mapper 3.0//EN"
 3         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 4 
 5 <mapper namespace="com.sunsharing.dao.UserDao">
 6 
 7     <resultMap id="asossiateWithSchool" type="com.sunsharing.entity.User">
 8         <id property="uId" column="u_id"/>
 9         <result property="uName" column="u_name"/>
10         <result property="uSex" column="u_sex"/>
11         <result property="uAge" column="u_age"/>
12         <result property="uBirth" column="u_birth"/>
13         <association property="school" javaType="com.sunsharing.entity.School" column="school_id" select="selectSchool">
14             <result property="schoolName" column="school_name"/>
15         </association>
16     </resultMap>
17 
18     <select id="selectAll" resultMap="asossiateWithSchool">
19       select *from `user`
20     </select>
21 
22     <select id="selectSchool" resultType="com.sunsharing.entity.School">
23         select *from school where school_id=#{schoolId}
24     </select>
25 
26 
27     <insert id="insertOne" parameterType="com.sunsharing.entity.User">
28       INSERT INTO `react`.`user`
29      (`u_id`, `u_name`, `u_sex`, `u_age`, `u_identity`, `u_birth`)
30       VALUES
31      (#{uId}, #{uName},#{uSex}, #{uAge}, #{uIdentity}, #{uBirth})
32     </insert>
33 
34     <parameterMap id="parameters" type="int">
35         <parameter property="pageNum" javaType="int"/>
36         <parameter property="pageCount" javaType="int"/>
37     </parameterMap>
38 
39     <select id="selectByPageNo" parameterMap="parameters" resultType="com.sunsharing.entity.User">
40         select *from `user` limit #{pageNum},#{pageCount}
41     </select>
42 
43     <select id="selectTotalCount" resultType="int">
44         select count(0) from `user`
45     </select>
46 
47 </mapper>

 

文章待完善。。。

猜你喜欢

转载自www.cnblogs.com/weekstart/p/mybatis.html