一:为什么要学习Mybatis?
MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。
MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。
第一:配置maven,mybatis必须配置相关jar包,最好在build中配置resources,来防止我们资源导出失败的问题
1.每一个Mybatis都是以SqlSessionFactory实例为核心的,SqlSessionFactory可以通过SqlSessionFactoryBuilder获得。而SqlSessionFactoryBuilder则 可以则可以从 XML 配置文件构建出 SqlSessionFactory 实例。 2.MyBatis 包含一个名叫 Resources 的工具类,它包含一些实用方法,使得从类路径或其它位置加载资源文件更加容易。 具体实现如下:
//引入mybatis的配置文件 String resource = "org/mybatis/example/mybatis-config.xml"; //使用Mybatis的工具类获得配置文件 InputStream inputStream = Resources.getResourceAsStream(resource); //使用SqlSessionFactoryBuilder建立配置 SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
)
第四:mybatis映射语句:UserMapper.XML
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> select * from mybatis.userselect * from mybatis.user where id= #{id};insert into mybatis.user(id, name, pwd) values (#{id},#{name},#{pwd});update mybatis.user set name=#{name},pwd=#{pwd} where id=#{id} ;delete from mybatis.user where id=#{id};
第五:编写接口和实体类
UserMapper接口
package com.he.dao; import com.he.pojo.User; import java.util.List; import java.util.Map; public interface UserMapper { //模糊查询 User getUserLike(String name); //查询全部用户 ListgetUserList(); //根据ID查询用户 User getUserById(int id); //野路子之万能map查询 User getUserById2(Mapmap); //添加用户 int addUser(User user); //修改用户 int updateUser(User user); //删除用户 int deleteUser(int id); }
User实体类:
package com.he.pojo; public class User { private int id; private String name; private String pwd; public User() { } public User(int id, String name, String pwd) { this.id = id; this.name = name; this.pwd = pwd; } 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 getPwd() { return pwd; } public void setPwd(String pwd) { this.pwd = pwd; } @Override public String toString() { return "User{" + "id=" + id + ", name='" + name + '\'' + ", pwd='" + pwd + '\'' + '}'; } }
第六:从 SqlSessionFactory 中获取 SqlSession
sqlSession中提供了数据库执行SQL的所有方法,可以通过SqlSession实例来执行映射的语句。
SqlSession session = sqlSessionFactory.openSession() //sqlSession获取映射 UserMapper mapper = session.getMapper(UserMapper.class); //执行一个通过id获取用户的方法 User user = mapper.getUserById(1)
第七:编写 mybatis工具类,首先要知道以下几点
1.SqlSessionFactoryBuilder这个类可以被实例化、使用和丢弃,一旦创建了 SqlSessionFactory,就不再需要它了。
2.SqlSessionFactory 一旦被创建就应该在应用的运行期间一直存在,没有任何理由丢弃它或重新创建另一个实例。
3.每个线程都应该有它自己的 SqlSession 实例。
工具类如下:MybatisUtils
package com.he.utils; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import java.io.InputStream; public class MybatisUtils { private static SqlSessionFactory sqlSessionFactory; static { try { //使用mybatis第一步:获取sqlSession对象 String resource="mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); }catch (Exception e){ e.printStackTrace(); } } //既然有了 SqlSessionFactory,顾名思义,我们就可以从中获得 SqlSession 的实例了。 //SqlSession 完全包含了面向数据库执行 SQL 命令所需的所有方法。 public static SqlSession getSqlSession(){ return sqlSessionFactory.openSession(true); } }
第八:测试
@Test public void getUserById(){ //使用工具类调用SqlSession SqlSession sqlSession = MybatisUtils.getSqlSession(); //获取映射,传入接口的.class文件,通过反射获取内容 UserMapper mapper = sqlSession.getMapper(UserMapper.class); //调用,接口中通过id查询用户的方法 User userById = mapper.getUserById(1); //输出 System.out.println(userById); //每次执行完需要关闭SqlSession sqlSession.close(); }
总结:1.配置maven环境,导入工具类
2.配置mybatis-config.xml
3.创建接口,实体类
4.编写mapper.xml文件
5.测试
Copyright © 2004-2024 Ynicp.com 版权所有 法律顾问:建纬(昆明)律师事务所 昆明市网翼通科技有限公司 滇ICP备08002592号-4