美文网首页
mybaits学习笔记(一)

mybaits学习笔记(一)

作者: yoyo鹿鸣 | 来源:发表于2016-09-06 12:07 被阅读162次
mybaits配置关系图

Maven依赖

        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.1</version>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.6</version>
        </dependency>

实现步骤

  1. 首先建立一个表,并实现 一个与这个表中字段对应的类
  2. 配置conf.xml文件
  3. 配置Mapper.xml文件
  4. 通过mybatis操作数据库
mapper.xml

首先看一下xxxMapper文件

<?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="me.gacl.mapping.userMapper">
    <select id="getUser" parameterType="int" 
        resultType="com.reno.mybatis.domain.User">
        select * from testuser where id=#{id}
    </select>
    <insert id="addUser" parameterType="com.reno.mybatis.domain.User">
        insert into testuser
        (name,age) values (#{name},#{age})
    </insert>

    <!-- 删除用户(Remove) -->

    <delete id="deleteUser" parameterType="int">
        delete from users where id=#{id}

    </delete>

    <!-- 修改用户(Update) -->

    <update id="updateUser" parameterType="com.reno.mybatis.domain.User">
        update users set name=#{name},age=#{age} where id=#{id}

    </update>

    <!-- 查询全部用户 -->

    <select id="getAllUsers" resultType="com.reno.mybatis.domain.User">
        select * from users

    </select>
</mapper>

 
  • 在这里首先需要关注的一点是namespace,每一个mapper有一个唯一指定的namespace,一般采用包名+mapper的文件名。之后再操作数据库时就通过namespace+select的id 这种方式来操作。
  • mapper内包裹的就是一系列的数据库操作。
  • <select> 中 id用于 配合namespace定位到具体操作
  • parameterType表示参数类型,参数就被传递到#{}所在的地方。
  • resultType代表了数据的返回类型,这里返回类型就是那个与数据库表信息对应的类
conf.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" />
            <!-- 配置数据库连接信息 -->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver" />
                <property name="url" value="jdbc:mysql://localhost:3306/tablename" />
                <property name="username" value="realusername" />
                <property name="password" value="realpasswd" />
            </dataSource>
        </environment>
    </environments>

    <mappers>
        <mapper resource="com/reno/mybatis/mapping/userMapper.xml" />
    </mappers>

</configuration>
  • 在environment中配置了数据库的连接信息
  • mapper中配置了各个mapper.xml的位置,其中将包名转化为文件路径
通过mybaits操作数据库
package com.reno.mybatis;

import java.io.InputStream;

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import com.reno.mybatis.domain.User;

public class mybaitsTest {

    public static void test() {
        // mybatis的配置文件
        String resource = "conf.xml";
        // 使用类加载器加载mybatis的配置文件(它也加载关联的映射文件)
        InputStream is = mybaitsTest.class.getClassLoader().getResourceAsStream(resource);
        // 构建sqlSession的工厂
        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is);
        // 使用MyBatis提供的Resources类加载mybatis的配置文件(它也加载关联的映射文件)
        // Reader reader = Resources.getResourceAsReader(resource);
        // 构建sqlSession的工厂
        // SqlSessionFactory sessionFactory = new
        // SqlSessionFactoryBuilder().build(reader);
        // 创建能执行映射文件中sql的sqlSession
        SqlSession session = sessionFactory.openSession();
        /**
         * 映射sql的标识字符串,
         * me.gacl.mapping.userMapper是userMapper.xml文件中mapper标签的namespace属性的值,
         * getUser是select标签的id属性值,通过select标签的id属性值就可以找到要执行的SQL
         */
        String statement = "com.reno.mybatis.mapping.userMapper.getUser";// 映射sql的标识字符串
        // 执行查询返回一个唯一user对象的sql
        User user = session.selectOne(statement, 1);

        System.out.println(user);
    }

}

相关文章

网友评论

      本文标题:mybaits学习笔记(一)

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