欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

Mybatis学习总结

时间:2023-07-05
1、什么是Mybatis

MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。


2.  编写Mybatis的步骤

首先我们要写一个Mybatis的核心配置文件,我们一般叫Mybatis-config.xml,这个名字其实是可以随便起的,但是我们有一句话叫约定大于配置.

Mybatis.config.xml文件代码

<?xml version="1.0" encoding="UTF-8"?>

dp.properties里面写数据库的信息

第二步  我们需要写一个Mybatis工具类

Utils.java

package 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.IOException;import java.io.InputStream;public class Util { public static SqlSessionFactory sqlSessionFactory; static { try { //获取sqlSessionFactory对象 String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); } catch (IOException e) { e.printStackTrace(); } } //获取sqlSession对象,它完全包含了面向数据库执行SQL语句所需的所有方法 public static SqlSession getSqlSession() { if(sqlSessionFactory==null){ System.out.println("这个是空的"); } //自动提交 return sqlSessionFactory.openSession(true); }}

这里要特别注意sqlsessionFactory的作用域,我第一次就在这里遇到空指针异常

第三步  创建实体类

这一步就很简单了,跟数据库中的字段对应上就可以了,具体的代码就不写了,我们一般叫这种模型起名叫POJO

第四步 写一个Mapper接口

写一个方法

package Mapper;import Models.aaa;import java.util.List;public interface DemoMapper { List getInsert();}

查询表里面的所有信息

第五步  编写Mapper配置文件

DemoMapper.xml

<?xml version="1.0" encoding="UTF-8"?> select * from aaa

第六步  执行方法

package Test01;import Mapper.DemoMapper;import Models.aaa;import Utils.Util;import org.apache.ibatis.session.SqlSession;import java.util.List;public class Test { public static void main(String[] args) { SqlSession sqlSession = Util.getSqlSession(); DemoMapper mapper = sqlSession.getMapper(DemoMapper.class); List insert = mapper.getInsert(); for (aaa aaa : insert) { System.out.println(aaa); } sqlSession.close(); }}

增删改都是一样的,写一个方法,然后在Mapper.xml文件里面配置

删除:

Mapper.xml文件代码

delete from aaa where id=#{id}

执行代码

SqlSession sqlSession = Util.getSqlSession(); DemoMapper mapper = sqlSession.getMapper(DemoMapper.class); int delete = mapper.getDelete(1014); System.out.println("成功删除id为1014的学生信息"); sqlSession.close();

增加:

insert into aaa (id,myname,sex,myaddress) values(#{id},#{myname},#{sex},#{myaddress})

执行代码

SqlSession sqlSession = Util.getSqlSession(); DemoMapper mapper = sqlSession.getMapper(DemoMapper.class); aaa aaa = new aaa(1015, "张三", "未知", "泰国"); mapper.getChange(aaa); sqlSession.close();

万能Map,这个是我们最常用的

我们要查询一个学生信息,条件为id和姓名

执行方法

qlSession sqlSession = Util.getSqlSession(); DemoMapper mapper = sqlSession.getMapper(DemoMapper.class); Map map = new HashMap(); map.put("name", "李四"); map.put("sid", 1015); List set = mapper.getSet(map); for (aaa aaa : set) { System.out.println(aaa); } sqlSession.close();

未完待续

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。