javamagicsun 2019-10-23
mybatis从18年10月开始接触,一直有使用,和断断续续的学习,但是不敢说完全掌控,隔一段时间不用,就忘了如何搭建。这段时间学习重心放到JavaEE,我决定完整的学习下SSM,记录下我的历程,以后忘了回来翻一翻,比写成本地文档要方便。
mybatis也可以在普通的Java项目中使用,不一定要Web项目。
mybatis核心组件:
以上这段精辟的文字摘自《JavaEE互联网轻量级框架整合》。
使用mybatis第一步,在src下建立一个“mybatis-config.xml”文件,xml文件的内容不需要记住,可以从mybatis 的介绍文件中拷贝,介绍文件在下载的包中。
拷贝后修改为自己的相关信息;<mappers></mappers>标签中放的是 映射器的xml文件位置。所谓映射器就是一个dao层下一个xx接口和xx.xml文件组成一个映射器。
第二步:建立dao层、pojo层,和其中的文件
public interface StudentMapper { List<Student> getList(); int add(Student student); int delete(int id); int update(Student student); }
<?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="com.houjun.dao.StudentMapper"><!-- namespace是绑定的接口全限定名 --> <select id="getList" resultType="student"> select * from student </select> </mapper>
package com.houjun.pojo; public class Student { private String name; private int id; private int age; private int tig; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getId() { return id; } public void setId(int id) { this.id = id; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public int getTig() { return tig; } public void setTig(int tig) { this.tig = tig; } @Override public String toString() { return "Student [name=" + name + ", id=" + id + ", age=" + age + ", tig=" + tig + "]"; } }
第三步:测试成果
自己找个地新建一个测试类
public static void main(String[] args) throws SQLException { SqlSessionFactory sessionFactory = null; try { InputStream resourceAsStream = Resources.getResourceAsStream("mybatis-config.xml"); sessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream); SqlSession session = sessionFactory.openSession(); Connection connection = session.getConnection(); Statement createStatement = connection.createStatement(); ResultSet executeQuery = createStatement.executeQuery("select * from student"); //回忆初学所用的原生JDBC写法 while (executeQuery.next()) {//一行一行循环 System.out.println(executeQuery.getInt(1) + executeQuery.getString(2) + executeQuery.getString(3)); } System.out.println(); //方式一 推荐 StudentMapper mapper = session.getMapper(StudentMapper.class); List<Student> list = mapper.getList(); for (Student student : list) { System.out.println(student); } //方式二 // List<Student> selectList = session.selectList("select * from student");不能直接运行sql语句 List<Student> selectList = session.selectList("com.houjun.dao.StudentMapper.getList");//参数是映射器xml文件中的方法 for (Student student : selectList) { System.out.println(student); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }