美文网首页
(一) MyBatis 环境搭建(基于IDEA 的Maven)

(一) MyBatis 环境搭建(基于IDEA 的Maven)

作者: 花季浅忆 | 来源:发表于2019-03-05 15:41 被阅读0次

    关于idea 配置maven环境就不多说了,自定百度。
    1.搭建步骤:File->new ->Project->Maven,然后一路Next就可以了。


    01.png
    02.png
    1. 创建好项目后在pom.xml中添加mybatis和 mysql的 maven依赖
          <dependency>
               <groupId>mysql</groupId>
               <artifactId>mysql-connector-java</artifactId>
               <version>5.1.8</version>
           </dependency>
           <!-- mybatis -->
           <dependency>
               <groupId>org.mybatis</groupId>
               <artifactId>mybatis</artifactId>
               <version>3.4.1</version>
           </dependency> 
    

    3.如下图所示


    03.png

    a)在mysql里面建一个数据库名字叫做mybatis,然后再mybatis里面建一个students表。创建表的语句在上图中students.sql中(该文件不是配置需要的,而是方便学习自己添加的),然后建一个Student实体类,包含id,name,sal三个属性。 util包下面建一个 MybatisUtil 类方便学习,在resources(这个是系统自己创建的)包下面 创建 Mybatis的配置文件,mybatis.xml 。 同时创建一个文件夹mapper,然后再mapper创建一个Student 类的映射文件 SutdentMapper.xml
    b) 他们的内容分别如下:
    SutdentMapper.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">
    <!-- 以下namespace名字可以随便写,但是一般都写成实体类的名字-->
    <mapper namespace="com.flyz.app01.Student">
        <!-- resultMap标签:映射实体与表
             type属性:表示实体全路径名
             id属性:为实体与表的映射取一个任意的唯一的名字
        -->
        <resultMap type="com.flyz.app01.Student" id="studentMap">
            <!-- id标签:映射主键属性
                 result标签:映射非主键属性
                 property属性:实体的属性名
                 column属性:表的字段名
            -->
            <id property="id" column="id"/>
            <result property="name" column="name"/>
            <result property="sal" column="sal"/>
        </resultMap>
    
        <select id="findById" parameterType="int" resultType="com.flyz.app01.Student">
             select * from students where id = #{id}
       </select>
    </mapper>
    
    04.png
    注意图中画横线的地方,要写成实体类的全类名。

    mybaits.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">
    
    <configuration>
        <!-- 环境配置 -->
        <environments default="development">
            <environment id="development">
                <transactionManager type="JDBC"/>
                <!-- 数据库连接相关配置 ,这里动态获取config.properties文件中的内容-->
                <dataSource type="POOLED">
                    <property name="driver" value="com.mysql.jdbc.Driver" />
                    <property name="url" value="jdbc:mysql://localhost:3306/mybatis?useUnicode=true&amp;characterEncoding=utf8&amp;useSSL=false" />
                    <property name="username" value="root" />
                    <property name="password" value="wscjwacs" />
                </dataSource>
            </environment>
        </environments>
        <!-- mapping文件路径配置 -->
        <mappers>
            <mapper resource="mapper/StudentMapper.xml"/>
        </mappers>
    
    </configuration>
    
    05.png

    MyBatisUtil.java

    package com.flyz.util;
    
    import java.io.IOException;
    import java.io.Reader;
    import java.sql.Connection;
    
    import com.flyz.app01.Student;
    import org.apache.ibatis.io.Resources;
    import org.apache.ibatis.session.SqlSession;
    import org.apache.ibatis.session.SqlSessionFactory;
    import org.apache.ibatis.session.SqlSessionFactoryBuilder;
    
    /**
     * 工具类
     * @author AdminTC
     */
    public class MybatisUtil {
         
        /**
         * 测试
         */
        public static void main(String[] args) {
    
            //定义读取文件名
            String resources = "mybatis.xml";
            //创建流
            Reader reader=null;
            try {
                //读取mybatis-config.xml文件到reader对象中
                reader= Resources.getResourceAsReader(resources);
            } catch (IOException e) {
                e.printStackTrace();
            }
            //初始化mybatis,创建SqlSessionFactory类的实例
            SqlSessionFactory sqlMapper=new SqlSessionFactoryBuilder().build(reader);
            //创建session实例
            SqlSession session=sqlMapper.openSession();
            //传入参数查询,返回结果
            Student user=session.selectOne("findById",1);
            //输出结果
            System.out.println(user.getName());
            //关闭session
            session.close();
        }
    }
    
    

    运行项目:


    06.png

    —————————————————————————————————————
    以上基本实现了,MyBatis的配置,下面简化一下配置:
    在resources文件夹下建一个db.properties文件内容如下:

    mysql.driver=com.mysql.jdbc.Driver
    mysql.url=jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=utf-8
    mysql.username=root
    mysql.password=wscjwacs
    

    在mybatis.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">
    
    <configuration>
     
     
     <!-- 加载类路径下的属性文件 -->
     <properties resource="db.properties"/>
    
     <!-- 设置类型别名 -->
     <typeAliases>
         <typeAlias type="com.flyz.Student" alias="student"/>
     </typeAliases>
     
    
     <!-- 设置一个默认的连接环境信息 -->
     <environments default="mysql_developer">
     
         <!-- 连接环境信息,取一个任意唯一的名字 -->
         <environment id="mysql_developer">
             <!-- mybatis使用jdbc事务管理方式 -->
             <transactionManager type="jdbc"/>
             <!-- mybatis使用连接池方式来获取连接 -->
             <dataSource type="pooled">
                 <!-- 配置与数据库交互的4个必要属性 -->
                 <property name="driver" value="${mysql.driver}"/>
                 <property name="url" value="${mysql.url}"/>
                 <property name="username" value="${mysql.username}"/>
                 <property name="password" value="${mysql.password}"/>
             </dataSource>
         </environment>
         
         
         <!-- 连接环境信息,取一个任意唯一的名字 -->
         <environment id="oracle_developer">
             <!-- mybatis使用jdbc事务管理方式 -->
             <transactionManager type="jdbc"/>
             <!-- mybatis使用连接池方式来获取连接 -->
             <dataSource type="pooled">
                 <!-- 配置与数据库交互的4个必要属性 -->
                 <property name="driver" value="${oracle.driver}"/>
                 <property name="url" value="${oracle.url}"/>
                 <property name="username" value="${oracle.username}"/>
                 <property name="password" value="${oracle.password}"/>
             </dataSource>
         </environment>
     </environments>
     
     <!-- 加载映射文件-->
     <mappers>
     
         <mapper resource="com/flyz/StudentMapper.xml"/>
     </mappers>
     
    </configuration>
    
    07.jpg

    StudentMapper.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">
    <!-- 以下namespace名字可以随便写,但是一般都写成实体类的名字-->
    
    <mapper namespace="com.flyz.app01.Student">
        <!-- resultMap标签:映射实体与表
             type属性:表示实体全路径名
             id属性:为实体与表的映射取一个任意的唯一的名字
        -->
        <resultMap type="student" id="studentMap">
            <!-- id标签:映射主键属性
                 result标签:映射非主键属性
                 property属性:实体的属性名
                 column属性:表的字段名
            -->
            <id property="id" column="id"/>
            <result property="name" column="name"/>
            <result property="sal" column="sal"/>
        </resultMap>
    
    
        <select id="findById" parameterType="int" resultType="student">
             select * from students where id = #{id}
       </select>
    
    
    </mapper>
    
    08.jpg
    [传送门](https://download.csdn.net/download/wzgbgz/10997961
    ps:不知道csdn怎么设置积分的默认是5积分了,如果有需要请给我发私信,我免费发

    相关文章

      网友评论

          本文标题:(一) MyBatis 环境搭建(基于IDEA 的Maven)

          本文链接:https://www.haomeiwen.com/subject/uhhouqtx.html