Mybatis入门简版(一)

来源:互联网 发布:marry u软件下载 编辑:程序博客网 时间:2024/06/14 12:27

一、Mybatis介绍

MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注 SQL 本身,而不需要花费精力去处理例如注册驱动、创建connection、创建statement、手动设置参数、结果集检索等jdbc繁杂的过程代码。

二、jdbc问题总结如下:

  1. 数据库连接创建、释放频繁造成系统资源浪费,从而影响系统性能。如果使用数据库连接池可解决此问题。
  2. Sql语句在代码中硬编码,造成代码不易维护,实际应用中sql变化的可能较大,sql变动需要改变java代码。
  3. 使用preparedStatement向占有位符号传参数存在硬编码,因为sql语句的where条件不一定,可能多也可能少,修改sql还要修改代码,系统不易维护。
  4. 对结果集解析存在硬编码(查询列名),sql变化导致解析代码变化,系统不易维护,如果能将数据库记录封装成pojo对象解析比较方便。

 

三、使用MyBatis需要进行配置

 

要用到SqlMapConfig.xml和mapper.xml。

 

SqlMapConfig.xml,此文件作为mybatis的全局配置文件,配置了mybatis的运行环境等信息。

mapper.xml文件即sql映射文件,文件中配置了操作数据库的sql语句。此文件需要在SqlMapConfig.xml中加载。

 

四、第一个MyBatis框架程序

 

------------------------------------Mybatis环境搭建----------------------------------------------------

  1. 导Jar包

    导三类:Mybatis核心jar,Mybatis所依赖的jar,数据库驱动(比如MySQL)

mybatis-3.2.7.jar        mybatis的核心包

lib文件夹            mybatis的依赖包所在

 

  1. 创建一个普通Java工程 并将jar包导到其下的lib目录且Build Path
  2. 导入数据库和POJO(也就是上学期的vo包)模块
  3. 创建相关配置文件

    Src/config下创建Mybatis核心配置文件:SqlMapConfig.xml

 

如下(固定格式):

<?xmlversion="1.0"encoding="UTF-8"?>

<!DOCTYPE configuration

PUBLIC"-//mybatis.org//DTD Config 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-config.dtd">

<configuration>

    <!-- 和spring整合后 environments配置将废除 -->

    <environmentsdefault="development">

        <environmentid="development">

            <!-- 使用jdbc事务管理 -->

            <transactionManagertype="JDBC"/>

            <!-- 数据库连接池 -->

            <dataSourcetype="POOLED">

                <propertyname="driver"value="com.mysql.jdbc.Driver"/>

                <propertyname="url"

                    value="jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8"/>

                <propertyname="username"value="root"/>

                <propertyname="password"value="root"/>

            </dataSource>

        </environment>

    </environments>

</configuration>

 

创建sqlmap/User.xml映射文件

<?xmlversion="1.0"encoding="UTF-8"?>

<!DOCTYPE mapper

PUBLIC"-//mybatis.org//DTD Mapper 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<!-- namespace:命名空间,用于隔离sql,还有一个很重要的作用,后面会讲 -->

<mapper namespace="test">

</mapper>

 

  1. 告诉核心配置文件我加了映射文件

     

    ---------------------------开始编写代码测试-------------------------------------------------------

    1. 创建如下:
    2. 编写如下Java调用Mybatis的代码:

       

    3. 编写SQL映射文件里的SQL语句(User.xml中)
    4. <!-- id:statement的id 或者叫做sqlid-->
    5.     <!-- parameterType:声明输入参数的类型 -->
    6.     <!-- resultType:声明输出结果的类型,应该填写pojo的全路径 -->
    7.     <!-- #{}:输入参数的占位符,相当于jdbc的? -->
    8.     <selectid="queryUserById"parameterType="int"
    9.         resultType="cn.itcast.mybatis.pojo.User">
    10.         SELECT * FROM `user` WHERE id = #{id}
    11.     </select>

       

      --------------------------------------编写完毕,查看结果和问题-------------------------

      1. User.xml里的返回类型得写对cn.test.pojo.User
      2. SqlMapConfig.xml里数据库名和账号密码得写对

 

OK,这个Mybatis框架的第一个程序就搞定了。

 

其余的增删查改同理(除了查,其它都要提交事物),在那个User.xml里写sql语句再调用即可,最后完整增删查改如下: