一.前言:下班时间学学mybatis。
什么是mybatis:MyBatis 是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架;只要记住它能让我们用很少的代码去完成增删改查就OK了。
1.使用mybatis第一步就是下载所需要的jar和数据库驱动相关的jar;
2.创建web项目,在src下添加以下mybatis配置文件,名字任意取,我的是conf.xml
3.在数据库中创建表
CREATE TABLE `grils` ( `id` int(11) NOT NULL, `name` varchar(100) DEFAULT NULL, `nationality` varchar(100) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8
4.我的目录结构是
创建于数据库表对应的类Grils
package domain;public class Grils { private int id; private String name; private String nationality; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getNationality() { return nationality; } public void setNationality(String nationality) { this.nationality = nationality; } @Override public String toString() { return "Grils [id=" + id + ", name=" + name + ", nationality=" + nationality + "]"; } }
5.创建映射文件grilsMapper.xml
6.在conf.xml中添加映射
7.创建测试类GrilsTest.java
package test;import java.io.InputStream;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;import domain.Grils;public class GrilsTest { public static void main(String[] args) { String resource = "conf.xml"; InputStream in = GrilsTest.class.getClassLoader().getResourceAsStream(resource); //创建SqlSessionFactory SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(in); //获取SqlSession SqlSession session = sessionFactory.openSession(); //执行查询 Grils gril = session.selectOne("mapping.grilsMapper.getGril",1); System.out.println(gril); }}
8.打印结果为Grils [id=1, name=苍井空, nationality=日本]
需要自己往数据库中添加数据,否则查询结果为null。
就这样,测试通过代表mybatis搭建成功了!
二.但是在开发过程中最好的方式是以接口的方式来编程
1.在src下创建mapper包用来装接口
创建接口GrilsMapper
package mapper;import domain.Grils;public interface GrilsMapper { //这个方法名必须与映射文件的ID相同!!! public Grils getGril(int id);}
注意:①接口中的方法名必须与映射文件grilsMapper.xml中<select id="getGril" parameterType="int" resultType="domain.Grils"> id是一致的!
②用接口的方式编程需要修改grilsMapper.xml中的<mapper namespace="mapper.GrilsMapper">,改成对应接口的就ok了!
2.创建测试类GrilsTest2
package test;import java.io.InputStream;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;import domain.Grils;import mapper.GrilsMapper;public class GrilsTest2 { public static void main(String[] args) { String resource = "conf.xml"; InputStream in = GrilsTest.class.getClassLoader().getResourceAsStream(resource); //创建SqlSessionFactory SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(in); SqlSession sqlSession = sessionFactory.openSession(); GrilsMapper grilsMapper = sqlSession.getMapper(GrilsMapper.class); Grils gril = grilsMapper.getGril(1); System.out.println(gril); }}
就能得到Grils [id=1, name=苍井空, nationality=日本]