mybatis学习笔记

Posted 自然的智慧

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis学习笔记相关的知识,希望对你有一定的参考价值。

mybatis是一个轻量级的持久层框架,这里记录下mybatis的入门级应用。废话不多说,下面是简单的使用流程:

1.引入jar包mybatis-3.4.5.jar(引入数据库连接工具包mysql-connector-java-5.1.39-bin.jar)

2.创建mybatis配置文件mybatis-config.xml,文件标签结构可参考:http://www.mybatis.org/mybatis-3/getting-started.html

<?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="mydb.property"></properties>
  <environments default="development">
    <environment id="development">
      <transactionManager type="JDBC"/>
      <dataSource type="POOLED">
        <property name="driver" value="${mydb.driver}"/>
        <property name="url" value="${mydb.url}"/>
        <property name="username" value="${mydb.username}"/>
        <property name="password" value="${mydb.password}"/>
      </dataSource>
    </environment>
  </environments>
  <mappers>
    <mapper class="cn.zjl.model.StudentMapper"/>
  </mappers>
</configuration>

3、创建数据库连接配置文件:mydb.property

mydb.driver=com.mysql.jdbc.Driver
mydb.url=jdbc:mysql://localhost/ssm
mydb.username=root
mydb.password=123456

4、新建实体类,mapper接口、mapper.xml(数据库添加student表及对应字段)

4.1 实体类Student包含属性id、name、age、gender,及get、set方法

4.2 mapper接口,定义如下方法:

selectOne(int id)根据id查询一条记录

selectAll()查询全部记录。

insertStu(Student student)添加一条记录。

updateStu(Student student)更新一条记录。

deleteOne(int id)删除一条记录。

4.3 mapper.xml定义数据库操作的sql语句。

<?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="cn.zjl.model.StudentMapper">
  <select id="selectOne" resultType="cn.zjl.model.Student"><!-- id值必须同mapper中的方法名一样 -->
    select * from Student where id = #{id}
  </select>
  <select id="selectAll" resultType="cn.zjl.model.Student">
    select * from Student
  </select>
  <insert id="insertStu">
      insert into Student(name, age, gender) values (#{name}, #{age}, #{gender})
  </insert>
  <update id="updateStu">
      update Student set name=#{name}, age=#{age} where id=${id}
  </update>
  <delete id="deleteOne">
      delete from Student where id=#{id}
  </delete>
</mapper>

5、mybatis的session管理工具类SessionUtil:

public class SessionUtil {

    public static SqlSession openSession() throws IOException{
        String resource = "mybatis-config.xml";
        InputStream inputStream  = Resources.getResourceAsStream(resource);//读取mybatis配置文件
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);//获取session工厂对象
        return sqlSessionFactory.openSession();//返回一个session实例
    }
}

6、测试mybatis项目的效果MybatisTest:

6.1 项目里右键新建一个junit test case,取名为MybatisTest;

6.2 新建测试方法:insertOne()

@Test
    public void insertOne() throws IOException {
        SqlSession session = SessionUtil.openSession();// 通过SessionUtil获取session
        StudentMapper mapper = session.getMapper(StudentMapper.class);// 获取操作数据的工具类对象
        Student student = new Student(); // 
        student.setAge(15);
        student.setName("ali");
        student.setGender("F");
        mapper.insertStu(student);
        session.commit(); // 提交session
        session.close(); // 关闭session
        /*List<Student> list = mapper.selectAll();
        System.out.println(list);
        Student s1 = new Student();
        s1.setId(1);
        s1.setName("mmmmm");
        mapper.updateStu(s1);
        List<Student> l1 = mapper.selectAll();
        System.out.println(l1);*/
    }

测试结果不在赘述。

以上是关于mybatis学习笔记的主要内容,如果未能解决你的问题,请参考以下文章

MyBatis-05-笔记

学习笔记:python3,代码片段(2017)

mybatis学习(39):动态sql片段

mybatis学习笔记使用generator生成mybatis基础配置代码和目录结构

Mybatis学习笔记-增删改的操作 -对SqlSession的优化封装-优化代码

MyBatis学习笔记