集成步骤第一步:创建数据库,数据表数据库你可以按照自己的喜好,java训练数据表我这里是程序员,字段如下:id主键,varchar(64),自动增长,notnullnamename,varchar(125)ageage,int第二步:新建项目,完成基础配置并新建一个基于maven的Java项目,完成如下配置:pom.xml文件主要依赖:4.0.0com.javafirstspring-mybatis1.0-SNAPSHOTUTF-81.81.8junitjunit4.11mysqlmysql-connector-java8.0.25org.mybatismybatis3.5。7org.springframeworkspring-context5.3.14org.mybatismybatis-spring1.3.3org.springframeworkspring-tx5.3.14org.springframeworkspring-jdbc1.2.6com.alibabadruid1.2.8src/main/java*/.properties*/.xmlfalse上面的配置基本固定,用到的任何依赖都可以在这里配置第三步:创建实体类这就是我们之前学过的,就是创建一个对应表中字段的Java实体类对象。代码如下:packagecom.javafirst.daomain;/**desc:数据表对应的实体类作者:推荐学习java
微信:studyingJava*/publicclassProgrammer{privateIntegerid;私有字符串名称;私有整数年龄;公共整数getId(){返回id;}publicvoidsetId(整数id){this.id=id;}publicStringgetName(){返回名称;}publicvoidsetName(字符串名称){this.name=name;}publicIntegergetAge(){returnage;}publicvoidsetAge(Integerage){this.age=age;}@OverridepublicStringtoString(){return"程序员信息:{"+"id="+id+",name='"+name+'\''+",age="+age+'}';}}第四步:创建dao接口和mapper文件这一步其实属于配置MyBatis。需要注意的是,我这里并没有把接口和对应的mapper文件放在同一个目录(package),这里会因为不同MyBatis配置文件中导致JavaBean对象别名的配置不同。根据个人习惯,我习惯把class和xml分开。ProgrammerDao.java代码如下:/**desc:MyBatis对应的dao层,使用SQL操作
作者:推荐学习java
微信:studyingJava*/publicinterfaceProgrammerDao{intaddProgrammer(Programmerprogrammer);ListselectAllProgrammer();}这个我们学习MyBatis的时候应该不会陌生。这里定义的接口实际上会被映射到Mapper中去执行SQL语句。ProgrammerMapper.xml代码如下:插入programmer(name,age)值(#{name},#{age})select*fromprogrammer这个类在mapper中资源目录下的文件夹下。第五步:完成MyBatis主配置文件。这个文件的位置在资源目录下,名为mybatis-config.xml,其代码如下:第四步提到的区别就是这里的标签中的内容。看评论或者之前的文章就可以理解了。接下来的操作是和Spring相关的。细心的同学可能已经有了疑惑。我们的数据源在哪里,也就是连接数据库的配置在哪里?Java培训能想到这个,说明我们对所学的东西记忆犹新。实际上,MyBatis和Spring一起使用时,数据源交给Spring容器处理,比单独使用MyBatis更简单、更容易。赶紧往下看:第6步:创建一个Service接口并实现一个类来定义ProgrammerService接口代码如下:publicinterfaceProgrammerService{intinsertProgrammer(Programmerprogrammer);ListqueryProgrammers();}这一步其实就是我们了解Spring过程会动态创建Java对象,然后通过相关设置进行赋值。实现类代码:/**desc:author:RecommendlearningjavaweChat:studyingJava*/publicclassProgrammerServiceImplimplementsProgrammerService{privateProgrammerDaoprogrammerDao;publicvoidsetProgrammerDao(ProgrammerDaoprogrammerDao){this.programmerDao=programmerDao;}@intoverridepublicinsertProgrammer(Programmer程序员){returnprogrammerDao.addProgrammer(programmer);}@OverridepublicListqueryProgrammers(){returnprogrammerDao.selectAllProgrammer();}}这个可以理解为代理对象的作用。第七步:创建Spring配置文件这个应该很熟悉了,在资源目录下命名为applicationContext.xml,和我们之前用的不一样,这里的内容变了:>!--多个包下有实体,使用,拆分-->这里其实有四个小步骤,这四个步骤基本上就是固定模式。我们可以在理解的基础上把过程写下来,以后就知道为什么要写了。为了方便,我把数据库相关的配置信息放在了外部文件jdbc.properties中,这个和我们前面学的是一样的。使用MyBatis时引用外部配置文件的用法是一样的。该文件在resource目录下,Spring配置文件中的引用就是这里的第一句代码。jdbc.properties文件内容如下:jdbc.url=jdbc:mysql://localhost:3306/spring_demojdbc.username=rootjdbc.password=root先说说这四个小步骤是什么意思:声明数据源:其实就是与数据库建立Link,这个过程交给Spring容器来管理SQLSessionFactoryBean的声明:这个工作的意义就是读取MyBatis的主配置文件,将声明的javaBean对象映射到SqlSessionFactoryBean管理器。声明MapperScannerConfigurer:它会扫描给定包下的接口对象,对所有接口执行一次getMapper()得到接口的dao对象,并将这些对象交给Spring容器管理。注册自定义Service:这个是我们自定义的东西,也就是我们自己的业务层。第8步:测试这里实际上可以执行两个测试。一是测试Dao层是否可以不经过我们的业务层就可以访问数据库并进行相关操作。@Testpublicvoidtest_addProgrammer(){Stringconfig="applicationContext.xml";ApplicationContextcontext=newClassPathXmlApplicationContext(config);ProgrammerDaoprogrammerDao=(ProgrammerDao)context.getBean("programmerDao");Programmerprogrammer=newProgrammer();programmer.setName("WangChongyang");programmer.setAge(102);programmerDao.addProgrammer(programmer);}这一步的测试可以不用我们之前配置的自定义Service。需要注意的是在Spring中添加记录不需要我们手动commit()。第二个测试是我们Spring和MyBatis整合后的测试,代码如下:context.getBean("programmerService");Programmerprogrammer=newProgrammer();programmer.setName("周伯通");programmer.setAge(112);introw=programmerService.insertProgrammer(programmer);System.out.println("insertResult:"+row);}结果大家可以自己验证,看数据表这里插入的值:我们还定义了一个查询函数,测试代码如下:/**Spring方法查询记录*/@Testpublicvoidtest_selectProgrammers_spring(){Stringconfig="applicationContext.xml";ApplicationContextcontext=newClassPathXmlApplicationContext(config);ProgrammerServiceprogrammerService=(ProgrammerService)context.getBean("programmerService");Listprogrammers=programmerService.queryProgrammers();System.out。println("查询结果:"+programmers);}结果自行验证。一般前面的流程运行的很顺利,这里不会有问题。最后看看我的项目结构:总结本文使用了前面学习的MyBatis和Spring的结合。掌握其流程和原理非常重要。其实想想,组合起来简单??多了。各种程序性的东西让我有些摸不着头脑,但这并不妨碍我们后面顺利上手。