当前位置: 首页 > news >正文

福州论坛建站模板青岛网站建设电话

福州论坛建站模板,青岛网站建设电话,福州seo关键字推广,做平台还是自己做网站目录 一、MyBatis简介 1. 什么是 MyBatis ? 2. MyBatis的特性 3. 什么是持久层框架#xff1f; 二、MyBatis环境配置 2.1 创建maven工程 2.2 导入相关pom依赖 2.3 导入jdbc配置文件 2.4 Mybatis相关插件安装 3.5 Mybatis-cfg.xml 核心配置 2.6 引入Log4j2日志文件…目录 一、MyBatis简介 1. 什么是 MyBatis ?  2. MyBatis的特性 3. 什么是持久层框架 二、MyBatis环境配置 2.1 创建maven工程 2.2 导入相关pom依赖 2.3 导入jdbc配置文件 2.4 Mybatis相关插件安装 3.5 Mybatis-cfg.xml 核心配置 2.6 引入Log4j2日志文件 2.7 generatorConfig.xml 配置代码生成器 三、MyBatis实现增删改查 3.1 MyBatis自动生成代码 3.2 解读生成的配置文件和方法 3.3 编写业务逻辑层实现接口 3.4 编写工厂类 3.5 编写测试类测试 一、MyBatis简介 1. 什么是 MyBatis ?  MyBatis是一个开源的Java持久层框架它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJOPlain Old Java Objects普通老式 Java 对象为数据库中的记录。 2. MyBatis的特性 简单易用MyBatis使用简单的XML或注解配置来映射Java对象和SQL语句使得开发人员可以轻松地编写和维护数据库访问代码。 灵活性MyBatis允许开发人员编写自定义的SQL语句从而可以灵活地处理复杂的数据库操作。它还支持动态SQL可以根据不同的条件生成不同的SQL语句。 高性能MyBatis使用了一些优化技术如预编译SQL语句、缓存等以提高数据库访问的性能。 易于集成MyBatis可以与各种流行的Java框架如Spring无缝集成使得开发人员可以更方便地使用MyBatis进行数据库操作。 MyBatis的主要作用是简化Java应用程序与关系型数据库之间的交互。通过使用MyBatis开发人员可以通过简单的配置和编写SQL语句实现对数据库的增删改查操作。同时MyBatis还提供了一些高级特性如分页查询、批量操作等使得数据库访问更加灵活和高效。总之MyBatis是一个功能强大、易于使用的持久层框架被广泛应用于Java开发中。 3. 什么是持久层框架 持久层框架是一种软件框架用于简化应用程序与数据库之间的交互和数据持久化操作。在软件开发中应用程序通常需要与数据库进行交互包括数据的读取、写入、更新和删除等操作。持久层框架的主要目的是提供一种简单、高效、可维护的方式来处理这些数据库操作。 传统的数据库操作方式通常需要开发人员手动编写SQL语句并处理数据库连接、事务管理等细节。这种方式存在一些问题如代码冗余、易出错、难以维护等。持久层框架的出现解决了这些问题它提供了一种抽象层将数据库操作封装起来使开发人员可以通过简单的API调用来进行数据库操作而无需关注底层的数据库细节。 持久层框架通常提供以下功能 对象关系映射ORM持久层框架可以将数据库表和Java对象之间建立映射关系使得开发人员可以通过操作Java对象来实现对数据库的操作而无需直接编写SQL语句。 数据库连接管理持久层框架负责管理数据库连接的创建、释放和连接池的管理以提高数据库访问的性能和效率。 事务管理持久层框架可以提供事务管理的功能确保数据库操作的一致性和完整性。 缓存管理持久层框架可以提供缓存机制将经常访问的数据缓存在内存中以提高数据的读取性能。 持久层框架的使用可以简化数据库操作的代码量提高开发效率降低开发难度并且可以提供一些高级特性如懒加载、分页查询、批量操作等使得数据库操作更加灵活和高效。常见的持久层框架有Hibernate、MyBatis等。 二、MyBatis环境配置 2.1 创建maven工程 我使用的是idea2023版其他版本创建Maven方式会有所不同仅供参考 2.2 导入相关pom依赖 project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsdmodelVersion4.0.0/modelVersiongroupIdorg.example/groupIdartifactIdmybatis_01/artifactIdpackagingwar/packagingversion1.0-SNAPSHOT/versionnamemybatis_01 Maven Webapp/nameurlhttp://maven.apache.org/urlpropertiesmaven.compiler.source1.8/maven.compiler.sourcemaven.compiler.target1.8/maven.compiler.target/propertiesdependencies!-- ********************** junit单元测试依赖 ********************** --dependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion4.12/versionscopetest/scope/dependency!-- ********************** Java Servlet API ********************** --dependencygroupIdjavax.servlet/groupIdartifactIdjavax.servlet-api/artifactIdversion4.0.0/versionscopeprovided/scope/dependency!-- ********************** Mybatis依赖 ********************** --dependencygroupIdorg.mybatis/groupIdartifactIdmybatis/artifactIdversion3.4.5/version/dependency!-- ********************** Mysql JDBC驱动 ********************** --dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion5.1.44/version/dependency!-- ********************** 日志配置 ********************** --!--核心log4j2jar包--dependencygroupIdorg.apache.logging.log4j/groupIdartifactIdlog4j-core/artifactIdversion2.9.1/version/dependencydependencygroupIdorg.apache.logging.log4j/groupIdartifactIdlog4j-api/artifactIdversion2.9.1/version/dependency!--web工程需要包含log4j-web非web工程不需要--dependencygroupIdorg.apache.logging.log4j/groupIdartifactIdlog4j-web/artifactIdversion2.9.1/version/dependency/dependenciesbuildfinalNamemybatis_01/finalNameresources!--解决mybatis-generator-maven-plugin运行时没有将XxxMapper.xml文件放入target文件夹的问题--resourcedirectorysrc/main/java/directoryincludesinclude**/*.xml/include/includes/resource!--解决mybatis-generator-maven-plugin运行时没有将jdbc.properites文件放入target文件夹的问题--resourcedirectorysrc/main/resources/directoryincludesincludejdbc.properties/includeinclude*.xml/include/includes/resource/resourcespluginsplugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-compiler-plugin/artifactIdversion3.7.0/versionconfigurationsource1.8/sourcetarget1.8/targetencodingUTF-8/encoding/configuration/pluginplugingroupIdorg.mybatis.generator/groupIdartifactIdmybatis-generator-maven-plugin/artifactIdversion1.3.2/versiondependencies!--使用Mybatis-generator插件不能使用太高版本的mysql驱动 --dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion5.1.44/version/dependency/dependenciesconfigurationoverwritetrue/overwrite/configuration/plugin/plugins/build /project2.3 导入jdbc配置文件 我用的mysql8.0版本需根据自身配置需求更改配置文件内容。 jdbc.drivercom.mysql.jdbc.Driver jdbc.urljdbc:mysql://localhost:3306/mybatis_ssm?useUnicodetruecharacterEncodingUTF-8 jdbc.usernamemybatis_ssm jdbc.passwordycxw3202.4 Mybatis相关插件安装 Mybatis plugin插件主要功能有 提供Mapper接口与配置文件中对应SQL的导航 编辑XML文件时自动补全 根据Mapper接口, 使用快捷键生成xml文件及SQL标签 ResultMap中的property支持自动补全支持级联(属性A.属性B.属性C) 快捷键生成Param注解 XML中编辑SQL时, 括号自动补全 XML中编辑SQL时, 支持参数自动补全(基于Param注解识别参数) 自动检查Mapper XML文件中ID冲突 自动检查Mapper XML文件中错误的属性值 支持Find Usage 支持重构从命名 支持别名 自动生成ResultMap属性 快捷键:   Option Enter(Mac) | Alt Enter(Windows) 3.5 Mybatis-cfg.xml 核心配置 MyBatis 的配置文件包含了MyBatis 行为的设置和属性信息。 配置文档的顶层结构如下 configuration配置properties属性settings设置typeAliases类型别名typeHandlers类型处理器objectFactory对象工厂plugins插件environments环境配置 environment环境变量 transactionManager事务管理器dataSource数据源databaseIdProvider数据库厂商标识mappers映射器 ?xml version1.0 encodingUTF-8? !DOCTYPE configuration PUBLIC -//mybatis.org//DTD Config 3.0//EN http://mybatis.org/dtd/mybatis-3-config.dtd configuration!-- 引入外部配置文件 --properties resourcejdbc.properties/settingssetting namelogImpl valueLOG4J2//settings!-- 别名 --typeAliases!--typeAlias typecom.javaxl.model.Book aliasBook/--/typeAliases!-- 配置mybatis运行环境 --environments defaultdevelopmentenvironment iddevelopment!-- typeJDBC 代表使用JDBC的提交和回滚来管理事务 --transactionManager typejdbc/!-- mybatis提供了3种数据源类型分别是POOLED,UNPOOLED,JNDI --!-- POOLED 表示支持JDBC数据源连接池 --!-- UNPOOLED 表示不支持数据源连接池 --!-- JNDI 表示支持外部数据源连接池 --dataSource typePOOLEDproperty namedrivervalue${jdbc.driver}/property nameurlvalue${jdbc.url}/property nameusername value${jdbc.username}/property namepassword value${jdbc.password}//dataSource/environment/environmentsmappersmapper resourcecom/ycxw/mapper/BookMapper.xml//mappers /configuration2.6 引入Log4j2日志文件 Log4j是Apache的一个开源项目通过使用Log4j我们可以控制日志信息输送的目的地是控制台、文件、GUI组件甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等log4j可以控制每一条日志的输出格式log4j可以通过一个配置文来灵活地进行配置而不需要修改应用的代码。 ?xml version1.0 encodingUTF-8?!-- status : 指定log4j本身的打印日志的级别.ALL Trace DEBUG INFO WARN ERROR FATAL OFF。 monitorInterval : 用于指定log4j自动重新配置的监测间隔时间单位是s,最小是5s. -- Configuration statusWARN monitorInterval30Properties!-- 配置日志文件输出目录 ${sys:user.home} --Property nameLOG_HOME/root/workspace/lucenedemo/logs/Propertyproperty nameERROR_LOG_FILE_NAME/root/workspace/lucenedemo/logs/error/propertyproperty nameWARN_LOG_FILE_NAME/root/workspace/lucenedemo/logs/warn/propertyproperty namePATTERN%d{yyyy-MM-dd HH:mm:ss.SSS} [%t-%L] %-5level %logger{36} - %msg%n/property/PropertiesAppenders!--这个输出控制台的配置 --Console nameConsole targetSYSTEM_OUT!-- 控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch) --ThresholdFilter leveltrace onMatchACCEPTonMismatchDENY /!-- 输出日志的格式 --!-- %d{yyyy-MM-dd HH:mm:ss, SSS} : 日志生产时间 %p : 日志输出格式 %c : logger的名称 %m : 日志内容即 logger.info(message) %n : 换行符 %C : Java类名 %L : 日志输出所在行数 %M : 日志输出所在方法名 hostName : 本地机器名 hostAddress : 本地ip地址 --PatternLayout pattern${PATTERN} //Console!--文件会打印出所有信息这个log每次运行程序会自动清空由append属性决定这个也挺有用的适合临时测试用 --!--append为TRUE表示消息增加到指定文件中false表示消息覆盖指定的文件内容默认值是true --File namelog fileNamelogs/test.log appendfalsePatternLayoutpattern%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n //File!-- 这个会打印出所有的info及以下级别的信息每次大小超过size 则这size大小的日志会自动存入按年份-月份建立的文件夹下面并进行压缩作为存档 --RollingFile nameRollingFileInfo fileName${LOG_HOME}/info.logfilePattern${LOG_HOME}/$${date:yyyy-MM}/info-%d{yyyy-MM-dd}-%i.log!--控制台只输出level及以上级别的信息onMatch其他的直接拒绝onMismatch --ThresholdFilter levelinfo onMatchACCEPTonMismatchDENY /PatternLayoutpattern%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n /Policies!-- 基于时间的滚动策略interval属性用来指定多久滚动一次默认是1 hour。 modulatetrue用来调整时间比如现在是早上3aminterval是4那么第一次滚动是在4am接着是8am12am...而不是7am. --!-- 关键点在于 filePattern后的日期格式以及TimeBasedTriggeringPolicy的interval 日期格式精确到哪一位interval也精确到哪一个单位 --!-- log4j2的按天分日志文件 : info-%d{yyyy-MM-dd}-%i.log --TimeBasedTriggeringPolicy interval1modulatetrue /!-- SizeBasedTriggeringPolicy:Policies子节点 基于指定文件大小的滚动策略size属性用来定义每个日志文件的大小. --!-- SizeBasedTriggeringPolicy size2 kB / --/Policies/RollingFileRollingFile nameRollingFileWarn fileName${WARN_LOG_FILE_NAME}/warn.logfilePattern${WARN_LOG_FILE_NAME}/$${date:yyyy-MM}/warn-%d{yyyy-MM-dd}-%i.logThresholdFilter levelwarn onMatchACCEPTonMismatchDENY /PatternLayoutpattern%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n /PoliciesTimeBasedTriggeringPolicy /SizeBasedTriggeringPolicy size2 kB //Policies!-- DefaultRolloverStrategy属性如不设置则默认为最多同一文件夹下7个文件这里设置了20 --DefaultRolloverStrategy max20 //RollingFileRollingFile nameRollingFileError fileName${ERROR_LOG_FILE_NAME}/error.logfilePattern${ERROR_LOG_FILE_NAME}/$${date:yyyy-MM}/error-%d{yyyy-MM-dd-HH-mm}-%i.logThresholdFilter levelerror onMatchACCEPTonMismatchDENY /PatternLayoutpattern%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n /Policies!-- log4j2的按分钟 分日志文件 : warn-%d{yyyy-MM-dd-HH-mm}-%i.log --TimeBasedTriggeringPolicy interval1modulatetrue /!-- SizeBasedTriggeringPolicy size10 MB / --/Policies/RollingFile/Appenders!--然后定义logger只有定义了logger并引入的appenderappender才会生效 --Loggers!--过滤掉spring和mybatis的一些无用的DEBUG信息 --logger nameorg.springframework levelINFO/loggerlogger nameorg.mybatis levelINFO/logger!-- 第三方日志系统 --logger nameorg.springframework levelERROR /logger nameorg.hibernate levelERROR /logger nameorg.apache.struts2 levelERROR /logger namecom.opensymphony.xwork2 levelERROR /logger nameorg.jboss levelERROR /!-- 配置日志的根节点 --root levelallappender-ref refConsole /appender-ref refRollingFileInfo /appender-ref refRollingFileWarn /appender-ref refRollingFileError //root/Loggers/Configuration 2.7 generatorConfig.xml 配置代码生成器 ?xml version1.0 encodingUTF-8 ? !DOCTYPE generatorConfiguration PUBLIC -//mybatis.org//DTD MyBatis Generator Configuration 1.0//ENhttp://mybatis.org/dtd/mybatis-generator-config_1_0.dtd generatorConfiguration!-- 引入配置文件 --properties resourcejdbc.properties/!--指定数据库jdbc驱动jar包的位置--classPathEntry locationD:\\Tools\\MavenHouse\\mvn_repository\\mysql\\mysql-connector-java\\5.1.44\\mysql-connector-java-5.1.44.jar/!-- 一个数据库一个context --context idinfoGuardian!-- 注释 --commentGeneratorproperty namesuppressAllComments valuetrue/!-- 是否取消注释 --property namesuppressDate valuetrue/ !-- 是否生成注释代时间戳 --/commentGenerator!-- jdbc连接 --jdbcConnection driverClass${jdbc.driver}connectionURL${jdbc.url} userId${jdbc.username} password${jdbc.password}/!-- 类型转换 --javaTypeResolver!-- 是否使用bigDecimal false可自动转化以下类型Long, Integer, Short, etc. --property nameforceBigDecimals valuefalse//javaTypeResolver!-- 01 指定javaBean生成的位置 --!-- targetPackage指定生成的model生成所在的包名 --!-- targetProject指定在该项目下所在的路径 --javaModelGenerator targetPackagecom.ycxw.modeltargetProjectsrc/main/java!-- 是否允许子包即targetPackage.schemaName.tableName --property nameenableSubPackages valuefalse/!-- 是否对model添加构造函数 --property nameconstructorBased valuetrue/!-- 是否针对string类型的字段在set的时候进行trim调用 --property nametrimStrings valuefalse/!-- 建立的Model对象是否 不可改变 即生成的Model对象不会有 setter方法只有构造方法 --property nameimmutable valuefalse//javaModelGenerator!-- 02 指定sql映射文件生成的位置 --sqlMapGenerator targetPackagecom.ycxw.mappertargetProjectsrc/main/java!-- 是否允许子包即targetPackage.schemaName.tableName --property nameenableSubPackages valuefalse//sqlMapGenerator!-- 03 生成XxxMapper接口 --!-- typeANNOTATEDMAPPER,生成Java Model 和基于注解的Mapper对象 --!-- typeMIXEDMAPPER,生成基于注解的Java Model 和相应的Mapper对象 --!-- typeXMLMAPPER,生成SQLMap XML文件和独立的Mapper接口 --javaClientGenerator targetPackagecom.ycxw.mappertargetProjectsrc/main/java typeXMLMAPPER!-- 是否在当前路径下新加一层schema,false路径com.oop.eksp.user.model true:com.oop.eksp.user.model.[schemaName] --property nameenableSubPackages valuefalse//javaClientGenerator!-- 配置表信息 --!-- schema即为数据库名 --!-- tableName为对应的数据库表 --!-- domainObjectName是要生成的实体类 --!-- enable*ByExample是否生成 example类 --!--table schema tableNamet_book domainObjectNameBook--!--enableCountByExamplefalse enableDeleteByExamplefalse--!--enableSelectByExamplefalse enableUpdateByExamplefalse--!--lt;!ndash; 忽略列不生成bean 字段 ndash;gt;--!--lt;!ndash; ignoreColumn columnFRED / ndash;gt;--!--lt;!ndash; 指定列的java数据类型 ndash;gt;--!--lt;!ndash; columnOverride columnLONG_VARCHAR_FIELD jdbcTypeVARCHAR / ndash;gt;--!--/table--table schema tableNamet_mvc_Book domainObjectNameBookenableCountByExamplefalse enableDeleteByExamplefalseenableSelectByExamplefalse enableUpdateByExamplefalse!-- 忽略列不生成bean 字段 --!-- ignoreColumn columnFRED / --!-- 指定列的java数据类型 --!-- columnOverride columnLONG_VARCHAR_FIELD jdbcTypeVARCHAR / --/table/context /generatorConfiguration注意 1.修改本地路径的jdbc驱动jar包位置  !--指定数据库jdbc驱动jar包的位置-- classPathEntry locationD:\\Tools\\MavenHouse\\mvn_repository\\mysql\\mysql-connector-java\\5.1.44\\mysql-connector-java-5.1.44.jar/ 2. 修改指定javaBean生成的位置 javaModelGenerator targetPackagecom.ycxw.modeltargetProjectsrc/main/java...... /javaModelGenerator 3. 修改指定sql映射文件生成的位置 sqlMapGenerator targetPackagecom.ycxw.mappertargetProjectsrc/main/java...... /sqlMapGenerator 4. 修改指定生成mapper接口文件位置 javaClientGenerator targetPackagecom.ycxw.mappertargetProjectsrc/main/java typeXMLMAPPER...... /javaClientGenerator 5. 修改需要引用的数据库表名 table schema tableNamet_mvc_Book domainObjectNameBookenableCountByExamplefalse enableDeleteByExamplefalseenableSelectByExamplefalse enableUpdateByExamplefalse...... /table 三、MyBatis实现增删改查 3.1 MyBatis自动生成代码 1. 找到配置的MyBatis插件启动mybatis-general 2. 然后就会生成实体和增删改查接口和实现的配置文夹 3.2 解读生成的配置文件和方法 ​ id对应的接口中的方法名​ resultType sql语句执行的返回值类型​ parameterType参数类型 3.3 编写业务逻辑层实现接口 1. 编写BookBiz接口类 package com.ycxw.biz;import com.ycxw.model.Book;/*** author 云村小威* site blog.csdn.net/Justw320* create 2023-08-20 17:52*/ public interface BookBiz {int deleteByPrimaryKey(Integer bid);int insert(Book record);int insertSelective(Book record);Book selectByPrimaryKey(Integer bid);int updateByPrimaryKeySelective(Book record);int updateByPrimaryKey(Book record); } 2. 编写BookBizImpl接口实现类 package com.ycxw.biz.impl;import com.ycxw.biz.BookBiz; import com.ycxw.mapper.BookMapper; import com.ycxw.model.Book;/*** author 云村小威* site blog.csdn.net/Justw320* create 2023-08-20 17:52*/ public class BookBizImpl implements BookBiz {//引入生成的接口private BookMapper bookMapper;public BookMapper getBookMapper() {return bookMapper;}public void setBookMapper(BookMapper bookMapper) {this.bookMapper bookMapper;}Overridepublic int deleteByPrimaryKey(Integer bid) {return bookMapper.deleteByPrimaryKey(bid);}Overridepublic int insert(Book record) {return bookMapper.insert(record);}Overridepublic int insertSelective(Book record) {return bookMapper.insertSelective(record);}Overridepublic Book selectByPrimaryKey(Integer bid) {return bookMapper.selectByPrimaryKey(bid);}Overridepublic int updateByPrimaryKeySelective(Book record) {return bookMapper.updateByPrimaryKeySelective(record);}Overridepublic int updateByPrimaryKey(Book record) {return bookMapper.updateByPrimaryKey(record);} }3.4 编写工厂类 该类主要为了实现了一个简单的MyBatis的SqlSession管理工具类通过openSession()方法可以获取到当前线程的SqlSession对象方便进行数据库操作。 package com.ycxw.utils;import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder;/*** 工厂类* author 云村小威* site blog.csdn.net/Justw320* create 2023-08-20 17:58*/ public class SessionUtil {private static SqlSessionFactory sessionFactory;private static ThreadLocalSqlSession threadLocal new ThreadLocalSqlSession();static {sessionFactory new SqlSessionFactoryBuilder().build(SessionUtil.class.getResourceAsStream(/mybatis.cfg.xml));}public static SqlSession openSession() {SqlSession session threadLocal.get();if (null session) {session sessionFactory.openSession();threadLocal.set(session);}return session;}public static void main(String[] args) {SqlSession session openSession();System.out.println(session.getConnection());session.close(); // System.out.println(session.getConnection());}}3.5 编写测试类测试 package com.ycxw.demo;import com.ycxw.biz.BookBiz; import com.ycxw.biz.impl.BookBizImpl; import com.ycxw.mapper.BookMapper; import com.ycxw.model.Book; import com.ycxw.utils.SessionUtil; import org.apache.ibatis.session.SqlSession; import org.junit.After; import org.junit.Before; import org.junit.Test;/*** author 云村小威* site blog.csdn.net/Justw320* create 2023-08-20 18:05*/ public class CURDTest {private BookBiz bookBiz;private SqlSession sqlSession;Beforepublic void before(){System.out.println(执行测试方法之前会执行的初始化代码块方法);//获取一个数据库会话对象并将其赋值给sqlSession变量this.sqlSession SessionUtil.openSession();//实例化业务逻辑层BookBizImpl book new BookBizImpl();//获取接口实例BookMapper mapper this.sqlSession.getMapper(BookMapper.class);book.setBookMapper(mapper);//最后赋值给bookBiz接口便于对数据库进行增删改查操作this.bookBiz book;}Afterpublic void after(){System.out.println(执行测试方法之后的后执行的方法);//提交事务this.sqlSession.commit();}Testpublic void text1(){System.out.println(测试查询方法方法..);Book book bookBiz.selectByPrimaryKey(25);System.out.println(book);}Testpublic void text2(){System.out.println(测试新增方法);int insert bookBiz.insert(new Book(1,Mybatis宝典,9.9f));System.out.println(所影响的行数insert);} }运行测试  数据库验证
http://www.ho-use.cn/article/10820183.html

相关文章:

  • 自己如何做公司网站视频投资网站网站源码
  • 孝感建设局网站建大型网站公司简介
  • 紫色个人网站模板豆瓣中需要优化的网站标签
  • 产品经理网站开发需求免费的培训网站建设
  • 织梦网站做自动生成地图前端网页设计师
  • 小程序商城怎么弄温州百度推广排名优化
  • 网站模板大全官网wordpress速度
  • 广东网站建设开发公司网站备案文件
  • 做网站空间备案的职业天元建设集团有限公司现状
  • 网站建设公司口碑排名电子科技网站建设
  • 成都制作网站的公司简介做网站的专业术语
  • 网站点播视频如何做wordpress输入正确密码无法登陆
  • 微软手机做网站服务器吗网站备案需要哪些材料
  • 有哪些好的网站项目网站设计软件开发
  • 网站流量超限什么意思山东东营考试信息网官网
  • 网站实名认证 备案移动应用开发与服务
  • 学校网站建设的建议建筑公司简介模板 范本
  • 东莞高端网站设计网站和系统哪个好做
  • 济宁住房和城乡建设厅网站首页北京做网站youyi51
  • 济南官方网站手机访问另一部手机访问文件
  • 建设企业网站制作公司南京网站如何制作
  • 网站页面设计布局wordpress留白
  • 保定网站优化排名建设商业网站
  • 沈阳专业网站制作wordpress中的分类页
  • 营销版网站潍坊优化网站
  • 佛山网站建设明细木门行业做网站有什么好处
  • 天津集体建设用地出售 网站优秀网站建设哪家专业
  • 公司设计网站定制线上销售模式有哪些
  • wordpress 免费建站网站建设公司专业
  • 做网站用的语言北京地产网站建设