JAVA编程114——Mybtais配置文件详解

参考网站:

mybatis官方文档

一、目录结构

在这里插入图片描述

二、代码详解

1、maven核心配置文件

<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.mollen.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
    
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.5</version>
        </dependency>
        
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.38</version>
        </dependency>
        
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>
        
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
        </dependency>
        
    </dependencies>

    <!-- 可以解决idea不能编译src目录下的xml文件 -->
    <build>
        <!--加载src目录下的静态文件-->
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
            </resource>
        </resources>
        
	
        <plugins>
       	    <!--jdk编译版本设置-->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>utf-8</encoding>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

2、mybatis核心配置文件:SqlMapConfig.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
        
<!--mybatis环境配置-->
<configuration>

    <!--加载数据源文件-->
    <properties resource="db.properties"></properties>
    
    <!--配置别名-->
    <typeAliases>
        <package name="com.mollen.dao"/>
        <package name="com.mollen.bean"/>
    </typeAliases>

    <!--配置数据源-->
    <environments default="mysql">
        <environment id="mysql">
            <transactionManager type="JDBC"></transactionManager>
            <dataSource type="POOLED">
                <property name="driver" value="${jdbc.driver}"></property>
                <property name="url" value="${jdbc.url}"></property>
                <property name="username" value="${jdbc.username}"></property>
                <property name="password" value="${jdbc.password}"></property>
            </dataSource>
        </environment>
    </environments>

    <!--配置映射/-->
    <mappers>
     	<!--单个映射配置-->
        <!--<mapper resource="com/mollen/dao/UserDao.xml"/>-->
        
        <!--批量映射配置-->
        <package name="com.mollen.dao"/> 
    </mappers>

</configuration>

3、配置数据源文件

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis_test
jdbc.username=root
jdbc.password=root

4、映射文件配置:UserDao.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.mollen.dao.UserDao">

    <!--配置 查询结果的列名和实体类的属性名的对应关系/暂不考虑多表映射-->
    <resultMap id="userMap" type="user">
        <!--主键字段的对应-->
        <id property="id" column="id"></id>
        <!-- 非主键字段的对应-->
        <result property="username" column="username"></result>
        <result property="birthday" column="birthday"></result>
        <result property="sex" column="sex"></result>
        <result property="address" column="address"></result>

    </resultMap>

    <!--查询所有-->
    <select id="findAll" resultType="user">
        SELECT * FROM  user;
    </select>

    <!--根据id查询用户-->
    <select id="findUserById" resultMap="userMap">
        SELECT * FROM user WHERE id in
        <foreach collection="array" open="(" close=")" separator="," item="uid">
            #{uid}
        </foreach>
    </select>

    <!--根据用户模糊查询-->
    <select id="findByName"  resultMap="userMap">
        select * from user where username like #{name}
    </select>

    <!--根据条件模糊查询-->
    <select id="findByCondition"  resultMap="userMap">
        SELECT * FROM user WHERE 1=1
        <if test="username != null">
            AND username like #{username}
        </if>
        <if test="sex != null">
            AND sex like #{sex}
        </if>
    </select>

    <!--添加用户-->
    <insert id="saveOne">
        INSERT  INTO
          user
        VALUES
        (
          null,
          #{username},
          #{birthday},
          #{sex},
          #{address}
        )
    </insert>

    <!--删除用户/根据传入参数类型自动匹配sql参数值-->
    <delete id="deleteOne" >
        DELETE  FROM
          user
        WHERE
          id = #{id}
    </delete>

    <!--修改用户-->
    <update id="updateUser">
        UPDATE
          user
        SET
          username = #{username},
          birthday = #{birthday},
          sex = #{sex},
          address = #{address}
        WHERE
          id = #{id}
    </update>

</mapper>

5、Dao接口类:UserDao.java

package com.mollen.dao;

import com.mollen.bean.User;

import java.util.List;

/**
 * @ClassName: UserDao
 * @Auther: Mollen
 * @CreateTime: 2018-10-27  20:19:07
 * @Description:
 */
public interface UserDao {

    /**
     * 1.查询所有
     * @return
     */
    public List<User> findAll();


    /**
     * 2.根据id查询用户(动态执行参数)
     * @return
     */
    public List<User> findUserById(Integer...ids);

    /**
     * 3.根据用户模糊查询
     */
    public List<User> findByName(String username);

    /**
     * 4.根据条件模糊查询
     * @param user
     * @return
     */
    public List<User> findByCondition(User user);

    /**
     * 5.添加一条数据
     * @param user
     */
    public void saveOne(User user);

    /**
     * 6.删除一条数据
     * @param user
     */
    public void deleteOne(User user);

    /**
     * 7.修改用户
     */
    public void updateUser(User user);
}

6、实体类:User.java

package com.mollen.bean;

import java.util.Date;

/**
 * @ClassName: User
 * @Auther: Mollen
 * @CreateTime: 2018-10-29  10:11:48
 * @Description:
 */
public class User {
    private int id;
    private String username;
    private Date birthday;
    private String sex;
    private String address;
	//getter/setter/toString/...
}

猜你喜欢

转载自blog.csdn.net/mollen/article/details/84566676