一、MyBatis框架的配置与基本使用

时间:2021-10-25 16:59:41

1、首先添加Maven依赖和MySql依赖

部分片段:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.38</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.3.0</version>
</dependency>

2、创建MyBatis的配置文件,并在XML中配置Mybatis的核心功能

  • 2.1 XML配置文件中包含了对MyBatis系统的核心配置、包含获取数据库连接实例的数据源(DataSource)和决定事务范围和控制方式的事务管理器(TransactionManager)

  • 2.2 在项目的根目录或人意目录下创建一个名为 “mybatis-config.xml” 的文件,文件名可以改变,并引用相关DTD

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYDE configuration
    PUBLIC "-//mybatis.org/DTD config 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-config.dtd">

    <configuration>
    <properties resource="properies文件的路径"></properties>
    <environments default="development">
    <environment id="development">
    <transactionManager type="JDBC" ></transactionManager>
    <datasource type="POOLED">
    <property name="driver" value="${driver}" />
    <property name="url" value=${url}" />
    <property name="username" value="${username}" />
    <property name="password" value="${password}" />
    </datasource>
    </environment>
    </environments>
    </configuration>
  • 2.3 说明:
    <property>标签用于引用properties文件,与数据库连接等的信息可写在properties文件中

3、创建实体类User

  • User.java

    public class User {
    private int id;
    private String userName;
    private String password;
    private String nickName;
    private int type;
    ......
    ......
    ......
    }

4、创建User实体类的mapper映射xml文件:用于添加SQL语句的配置

  • 4.1. user.xml

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE mapper
    PUBLIC "-//mybatis.org/DTD Mapper 3.0//EN
    "http://mybatis.org/dtd/mybaties-3-mapper.dtd" >
    <mapper namespace="model.User" >
    <insert id="add" paramterType="model.User" >
    insert into t_user(username, nickname, password, type)
    value(#{username}, #{nickname}, #{password}, #{type})
    </insert>

    <select id="select" paramterType="int" resultType="model.User" >
    SELECT * FROM t_user WHERE id=#{id}
    </select>
    </mapper>
  • namespace : 命名空间,通常使用完全限定类名”model.User”,使用命名空间,可以允许你使用完全限定类名”model.User”来调用映射语句

  • paramType : 参数类型

5、将user.xml文件的添加到mybatis的配置文件中:

    <mappers>
<mapper resource="user.xml" />
</mappers>

6、在代码中使用MyBatis进行执行SQL等数据库的操作:

  • 创建Test测试类:

    public class Test {
    @Test
    public void testInsert() {
    //mybatis的配置文件的路径,由于使用了Maven,便把mybatis-config.xml放在了src/main/resources中,所以不用加上路径
    String resource = "mybatis-config.xml";
    try {
    //获得配置文件的输入流
    InputStream is = Resources.getResourceAsStream(resource);
    //从XML配置文件中构建SqlSessionFactory的实例,
    //每个基于 MyBatis的应用都是以SqlSessionFactory实例为中心的,该实例可以通过SqlSessionFactoryBuilder获得,
    //而SqlSessionFactoryBuilder则可以从XML配置文件或
    //一个预定制的Configutation的实例构建出SqlSessionFactory实例
    SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is);
    SqlSession sqlSession = sessionFactory.openSession();
    User user = new User();
    user.setUserName("....");
    user.setNickName("....");
    user.setPassword(".....");
    user.setType(...);
    sqlSession.insert("model.User.add", user);
    sqlSession.commit();
    sqlSession.Close();
    } catch (Exception e){
    ........
    }
    }

    @Test
    public void testSelect() {
    String resource = "mybatis-config.xml";
    try {
    InputStream is = Resources.getResourceAsStream(resource);
    SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().builder(is);
    SqlSession session = sessionFactory.openSession();
    User user = session.selectOne("model.User.select", 1);
    System.out.println(user.toStirng());
    } catch (Exception e) {
    .....
    }
    }
    }

7、