MyEclipse整合SSM框架(二):Mybatis逆向工程配置以及dao层增删改查测试

xiaoxiao2021-02-28  29

说明:项目工程采用 maven 管理,maven 工程的建立参见:

           https://blog.csdn.net/weixin_38533896/article/details/7976818

           Spring + SpringMVC+ Mybatis 相关 .xml 文件配置参见: 

           https://blog.csdn.net/weixin_38533896/article/details/79863620

           本文是接续上两篇博客完成的。

1.  建立数据表 

2.  工程中按照功能建立对应的包,在src/main/resources下建立 mapper 文件夹用于存放逆向工程的映射文件

 

3.  引入mybatis-generater jar 包,此 jar包的引入已经写入 pom.xml 文件

<dependency>      <groupId>org.mybatis.generator</groupId>      <artifactId>mybatis-generator-core</artifactId>      <version>1.3.5</version>  </dependency> 

4.  在工程的根目录建立 mbg.xml 文件,配置如下: 

<?xml version="1.0" encoding="UTF-8"?>  <!DOCTYPE generatorConfiguration    PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"    "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">    <generatorConfiguration>        <context id="DB2Tables" targetRuntime="MyBatis3">            <!-- 屏蔽生成代码的注释 -->          <commentGenerator>              <property name="suppressAllComments" value="true" />          </commentGenerator>            <!-- 配置数据库链接 -->          <jdbcConnection driverClass="com.mysql.jdbc.Driver"              connectionURL="jdbc:mysql://localhost:3306/ssm?characterEncoding=UTF-8&useSSL=false"              userId="root" password="402664107">          </jdbcConnection>            <javaTypeResolver>              <property name="forceBigDecimals" value="false" />          </javaTypeResolver>            <!-- 指定javaBean 的生成位置 -->          <javaModelGenerator targetPackage="com.lbc.crud.bean"              targetProject=".\src\main\java">              <property name="enableSubPackages" value="true" />              <property name="trimStrings" value="true" />          </javaModelGenerator>            <!-- 指定sql 映射文件生成位置 -->          <sqlMapGenerator targetPackage="mapper" targetProject=".\src\main\resources">              <property name="enableSubPackages" value="true" />          </sqlMapGenerator>            <!-- 指定dao 接口生成的位置,mapper 接口 -->          <javaClientGenerator type="XMLMAPPER"              targetPackage="com.lbc.crud.dao" targetProject=".\src\main\java">              <property name="enableSubPackages" value="true" />          </javaClientGenerator>            <!-- table 指定每个表的生成策略 -->          <table tableName="tbl_emp" domainObjectName="Employee"></table>          <table tableName="tbl_dept" domainObjectName="Department"></table>        </context>  </generatorConfiguration>  

5.  在 test 包下建立MBGTest.java,运行生成数据表对应的 bean、dao

public class MBGTest {        public static void main(String[] args) throws Exception {          List<String> warnings = new ArrayList<String>();          boolean overwrite = true;          File configFile = new File("mbg.xml");          ConfigurationParser cp = new ConfigurationParser(warnings);          Configuration config = cp.parseConfiguration(configFile);          DefaultShellCallback callback = new DefaultShellCallback(overwrite);          MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config,                  callback, warnings);          myBatisGenerator.generate(null);      }  }  

6.  在 test 包下建立 MapperTest.java 测试增删改查。注意:需要导入 Spring 单元测试 jar 包,此 jar 包导入已写入pom.xml

<!-- spring单元测试 -->  <dependency>      <groupId>org.springframework</groupId>      <artifactId>spring-test</artifactId>      <version>4.3.7.RELEASE</version>      <scope>test</scope>  </dependency>  

MapperTest.java

@RunWith(SpringJUnit4ClassRunner.class)  @ContextConfiguration(locations = { "classpath:applicationContext.xml" })  public class MapperTest {        @Autowired      DepartmentMapper departmentMapper;        @Autowired      EmployeeMapper employeeMapper;        @Autowired      SqlSession sqlSession;        @Test      public void testDeptInsert() {          int insertSelective = departmentMapper.insertSelective(new Department(null"开发部"));          System.out.println(insertSelective);      }        @Test      public void testDeptSelect() {          Department selectByPrimaryKey = departmentMapper.selectByPrimaryKey(1);          System.out.println(selectByPrimaryKey);      }        @Test      public void testEmpSelectByKey() {          Employee selectByPrimaryKeyWithDept = employeeMapper                  .selectByPrimaryKeyWithDept(2);          System.out.println(selectByPrimaryKeyWithDept);      }        @Test      public void testEmpSelectByExample() {                    EmployeeExample employeeExample = new EmployeeExample();          Criteria criteria = employeeExample.createCriteria();          criteria.andEmpIdLessThan(5);            List<Employee> listTeammembers =employeeMapper.selectByExampleWithDept(employeeExample);            for(Employee e : listTeammembers){                        System.out.println(e);          }      }        @Test  //测试批量插入    public void testEmpInsert() {          EmployeeMapper mapper = sqlSession.getMapper(EmployeeMapper.class);          for (int i = 0; i < 1000; i++) {              String uid = UUID.randomUUID().toString().substring(05) + i;              mapper.insertSelective(new Employee(null, uid, "M", uid                      + "@atguigu.com"1));          }      }    

7.  测试结果

至此,SSM 框架已经实现 控制台与数据库的接通,接下来进行控制台与前端界面的联合调试。

转载请注明原文地址: https://www.6miu.com/read-2619853.html

最新回复(0)