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

你知道目前最流行的Mybatis框架吗?如何建造它?

时间:2023-03-26 16:41:25 Python

MyBatis最初是apache的一个开源项目iBatis。2010年,这个项目从apachesoftwarefoundation迁移到googlecode,并更名为MyBatis。2013年11月迁移至Github。iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQLMaps和DataAccessObjects(DAO)。MyBatis是一个优秀的持久层框架,支持常见的SQL查询、存储过程和高级映射。MyBatis消除了几乎所有JDBC代码和参数的手动设置,以及结果集的检索和封装。MyBatis可以使用简单的XML或注解进行配置和原始映射,将接口和JavaPOJO(PlainOldJavaObjects,普通Java对象)映射到数据库中的记录中。mybatis并不是一个完整的orm框架。Mybatis需要程序员自己写sql,但是也有映射(输入参数映射,输出结果映射)。mybatis的学习门槛低于hibernate;同时,它具有很高的灵活性,特别适合不断变化的商业模式。项目,应用广泛。小结:简化jdbc代码,简化持久层,将sql语句与代码分离,利用反射将表中数据与javabean属性一一映射,即ORM(ObjectRelationalMappingObjectRelationalMapping)使用范围:在日常开发项目中,比如ERP(Crm客户关系管理系统,OA系统)等中小型项目,需求和关系模型都比较固定。建议使用Hibernate。对于需求不固定的项目,比如:互联网项目,推荐使用mybatis,因为需要经常灵活的写sql语句。总之,mybatis已经成为现在必须学习和掌握的持久层框架。Mybatis框架搭建方式新建一个Maven项目log4j日志在resources目录下添加配置文件添加映射文件添加实体类Customer在父类项目中添加pom获取资源测试用例实践1.新建一个Maven项目Createanewmaven工程,在pom文件中添加依赖jarorg.mybatismybatis3.4.1mysqlmysql-connector-java5.1.39log4jlog4j1.2.162.log4j日志新增src/main/resources资源包下添加log4j日志输出属性文件,方便查看日志输出信息全局日志配置log4j.rootLogger=DEBUG,stdoutConsoleoutput...log4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j。附加er.stdout.layout.ConversionPattern=%5p[%t]-在%m%n3.resources目录下的配置文件中新增mybatis.xml文件,添加配置信息如下(数据库名mybatis,表user)</configuration>标签的配置可能没有自动提示:解决方法:引入mybatis-3-config.dtd文件Window-preferences-searchforxml-xmlcatalogintheUserSpecifiedEntriesdirectoryadd->Locattion:http://mybatis.org/dtd/mybatis-3-mapper.dtd(value对应xml模板)KeyType:URIKey:-//mybatis.org//DTDMapper3.0//EN(value对应到xml模板)第2步:关闭xml并重新打开它。如果重启失败,重启Eclipse即可最后点击OK4.添加映射文件新建一个CustomerMapper.xml配置文件SELECTid,user_name'userName',user_balance'userBalance'FROMyg_customerWHEREid=#{id}5.实体类Customer添加包com.xxx.pojo;publicclassCustomer{privateintid;私有字符串用户名;privateStringuserBalance;publicintgetId(){返回ID;}publicvoidsetId(intid){this.id=id;}publicStringgetUserName(){返回用户名;}publicvoidsetUserName(StringuserName){this.userName=userName;}publicStringgetUserBalance(){返回用户余额;}publicvoidsetUserBalance(StringuserBalance){this.userBalance=userBalance;}@OverridepublicStringtoString(){return"Customer{"+"id="+id+",userName='"+userName+'''+",userBalance='"+userBalance+'''+'}';}}6.在父类工程pom获取资源src/main/java*/.xmlsrc/main/resources*/.xml*/.properties7.测试@Testpublicvoidtest()throwsIOException{/**a)、读取mybatis配置文件b)、加载配置文件创建SqlSessionFactoryc)、根据SqlSessionFactory创建SqlSessiond)、通过sqlSession操作数据库e)、处理结果f)、关闭session*//**加载配置到内存*/InputStreamis=Resources.getResourceAsStream("mybatis.xml");/**创建SqlSessionFactory对象hibernate也是一样,首先要获取SqlSessionFactory实例化对象*/SqlSessionFactoryfactory=newSqlSessionFactoryBuilder().build(is);/**获取操作数据库的session参数1:指定UserMapper.xml映射文件id必须加入namespace参数2:指定入参*/SqlSessionsession=factory.openSession();客户客户=session.selectOne("com.xxx.mapper.customerMapper.queryCustomerById",2);/**输出返回结果*/System.out.println(customer);/**操作数据库后关闭session*/session.close();}扩展MyBatis框架架构说明:1Configuration-mybatis配置1)、和spring一样,可以通过配置文件或者注解的形式进行配置;2)、mybatis.xml,该文件作为mybatis的全局配置文件,配置mybatis的运行环境等信息;3)、mapper文件就是sql映射文件,在文件中配置操作数据库的sql语句。这个文件需要在mybatis.xml中加载。4)、有了配置文件后,构造SqlSessionFactory,即会话工厂,通过mybatis环境等配置信息操作数据库,用Executor的具体实现类实现指定的dao层数据访问操作.2MappedStatement框架的底层封装对象(sql语句、输入参数、输出结果类型),其中封装了mybatis的配置信息和sql映射信息等,mapper文件(即Mapper.xml)中的一个sql对应一个MappedStatement对象,sqlid为Mapped语句的id。3Sql输入映射参数基本类型、简单类型、HashMap、自定义POJO等输入参数映射是在jdbc编程中为preparedStatement设置参数,Executor在执行sql之前通过MappedStatement将输入的java对象映射到sql。4Sql输出映射参数基本类型、简单类型、HashMap、自定义POJO。Statement定义了sql执行的输出结果。输出结果映射过程相当于jdbc编程中的结果解析过程。Executor通过MappedStatement将sql执行后的输出结果映射到java对象中。这里使用Maven工程,通过maven仓库管理下载相应的mybatisjar包下载。需要视频和文档的,评论区留言扣1