欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Mybatis学习笔记(一)

程序员文章站 2022-05-23 23:53:36
...

注:Mybatis版本 3.4.5

1.引入jar包
Mybatis学习笔记(一)

2.创建配置文件mybatis-config.xml
Mybatis学习笔记(一)

3.配置配置文件

<?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>
    <!-- 从文件中读取数据库配置 -->
    <!-- 此处读取文件是从src目录下开始的,可以放在自己新建的文件夹下如 config/myconfig/jdbc.properties -->
    <properties resource="jdbc.properties"/>

    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC" />
            <dataSource type="POOLED">
            <!-- 对应 jdbc.properties 中的字段 -->
                <property name="driver" value="${jdbc.driver}" />
                <property name="url" value="${jdbc.url}" />
                <property name="username" value="${jdbc.user}" />
                <property name="password" value="${jdbc.password}" />
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <!-- sql映射文件 -->
        <mapper resource="sqlMapper.xml" />
    </mappers>
</configuration>

4.创建sql映射文件[DomainName]Mapper.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="xxxxxxxxx">
  <select id="selectAll" resultType="com.zm.domain.Student">
    select 
        <!-- 字段名要对应javabean 如果不一致就要用别名来保持一致 -->
        <!-- 如 id as sId -->
        id,name,age
    from 
        tbl_student
  </select>

  <delete id="deleteById">
    delete 
        from
            tbl_student
        where 
            id=#{id}
  </delete>

  <select id="selectById" resultType="com.zm.domain.Student">
    select 
        id,name,age
    from 
        tbl_student
    where
        id=#{id}
  </select>

  <insert id="addStudent" parameterType="com.zm.domain.Student">
    insert into
        tbl_student
    (id,name,age) values (#{id},#{name},#{age})
  </insert>

  <update id="updateStudent" parameterType="com.zm.domain.Student">
    update
        tbl_student
            set name=#{name},age=#{age}
        where
            id=#{id}
  </update>
</mapper>

注:
(1) CRUD 对应相应的标签
如果parameterType为17种简单类型,则可以省略(17种简单类型为8种基本数据类型以及对应的封装类加上String)
(2) 占位符使用#{ }
如果sql种只用到了一个占位符,则内容可以随意写,但是规范起见,还是按格式来
占位符中的字段要与javabean中的字段一致,mybatis会自动把首字母大写,前面加上get,比如#{id}则会调用getId()

6.调用方法

try {
    String resource = "mybatis-config.xml";
    InputStream inputStream = Resources.getResourceAsStream(resource);
    //创建SqlSessionFactory 
    SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
    //创建SqlSession 开启会话
    SqlSession sqlSession = sqlSessionFactory.openSession();
    //接收数据
    List<Student> sList = new ArrayList<>();
    //查多个 还有selectOne insert delete update 方法,其他看api
    //注意 参数是对应的映射文件中的mapper的id
    sList = sqlSession.selectList("selectAll");
    //提交事务
    sqlSession.commit();
} catch (Exception e) {
    //事务回滚
    if (sqlSession != null) {
        sqlSession.rollback();
    }
    e.printStackTrace();
} finally{
    //关闭会话
    if (sqlSession != null) {
        sqlSession.close();
    }
}
相关标签: Mybatis