当前位置: 首页 > 后端技术 > Java

Mybatis框架总结!快速掌握Mybatis框架

时间:2023-04-01 22:23:09 Java

一、Mybatis简介  MyBatis是一个优秀的持久层框架,支持常见的SQL查询、存储过程和高级映射。MyBatis消除了几乎所有JDBC代码和参数的手动设置,以及结果集的检索和封装。MyBatis可以使用简单的XML或注解进行配置和原始映射,将接口和JavaPOJO(PlainOldJavaObjects,普通Java对象)映射到数据库中的记录中。更多知识点可以到这里学习:https://www.bilibili.com/video...  2.MybatisQuickStart2.1。准备开发环境1.创建一个测试项目,一个普通的java项目或者一个JavaWeb项目都可以,如下图:  2.添加对应的jar包【mybatis】  mybatis-3.1.1.jar【MYSQL驱动包】\    mysql-connector-java-5.1.7-bin.jar3,建库建表,为MySQL数据库  SQL脚本如下:createdatabasemybatis;usemybatis;CREATETABLEusers(idINTPRIMARYKEYAUTO_INCREMENT,NAMEVARCHAR(20),ageINT);INSERTINTOusers(NAME,age)VALUES('LonelyWolf',27);INSERTINTOusers(NAME,age)VALUES('白虎皇',27);在MySQL数据库中执行SQL脚本,完成建库建表操作,如下:    至此,前期开发环境准备工作全部完成。2.2.使用MyBatis查询表  1中的数据。添加Mybatis配置文件conf.xml  在src目录下创建conf.xml文件,如下图:    conf.xml文件内容如下:2.定义表对应的实体类,如下图:User类的代码如下:packageme.gacl.domain;/***@authorgacl*users表对应的实体类*/publicclassUser{//实体类的属性和表的字段名一一对应privateintid;私有字符串名称;私人年龄;publicintgetId(){返回ID;}publicvoidsetId(intid){this.id=id;}publicStringgetName(){返回名称;}publicvoidsetName(Stringname){this.name=name;}publicintgetAge(){返回年龄;}publicvoidsetAge(intage){this.age=age;}@OverridepublicStringtoString(){return"User[id="+id+",name="+name+",age="+age+"]";}}3.定义sql映射文件userMapper.xml  操作users表创建一个me.gacl.mapping包,专门用来存放sql映射文件,并在包内创建userMapper.xml文件,如下图:    userMapper.xml文件如下:select*fromuserswhereid=#{id}4.在conf.xml文件中注册userMapper.xml文件5.编写测试代码:执行定义的select语句创建一个Test1类,编写如下测试代码:packageme.gacl.test;importjava.io.IOException;importjava.io.InputStream;importjava.io.Reader;importme.gacl.domain.User;importorg.apache.ibatis.io.Resources;导入org.apache.ibatis.session.SqlSession;导入org.apache.ibatis.session.SqlSessionFactory;导入org.apache.ibatis.session.SqlSessionFactoryBuilder;公共类Test1{publicstaticvoidmain(String[]args)throwsIOException{//Mybatis配置文件Stringresource="conf.xml";//使用类加载器加载mybatis配置文件(同时加载关联的映射文件)InputStreamis=Test1.class.getClassLoader().getResourceAsStream(resource);//构造sqlSession的工厂SqlSessionFactorysessionFactory=newSqlSessionFactoryBuilder().build(is);//使用MyBatis提供的Resources类加载mybatis的配置文件(同时加载关联的映射文件)//Readerreader=Resources.getResourceAsReader(resource);//构建sqlSession工厂//SqlSessionFactorysessionFactory=newSqlSessionFactoryBuilder().build(rea顺序);//在映射文件中创建一个可以执行sql的sqlSessionSqlSessionsession=sessionFactory.openSession();/***映射sql的标识字符串,*me.gacl.mapping.userMapper是userMapper.xml文件中的mapper标签namespace属性的值,*getUser是select标签的id属性值,通过select标签的id属性值可以找到要执行的sql*/Stringstatement="me.gacl.mapping.userMapper.getUser";//映射sql标识字符串//执行查询返回a的sql唯一用户对象Useruser=session.selectOne(statement,1);System.out.println(用户);}}执行结果如下:    可以看到,数据库中的记录查询成功了。