• Mybatis01


    目录

    1.搭建mybatis框架环境

    2.基于ssm逆向工程的使用(IDEA)

    3.Mybatis增删改查案例


    1.搭建mybatis框架环境

    1.创建maven工程

    2.导入相关pom依赖

    3.Mybatis相关插件安装

    4.Mybatis.cfg.xml配置

    Pom.xml依赖

    1. <properties>
    2. <maven.compiler.source>1.8maven.compiler.source>
    3. <maven.compiler.target>1.8maven.compiler.target>
    4. properties>
    5. <dependencies>
    6. <dependency>
    7. <groupId>junitgroupId>
    8. <artifactId>junitartifactId>
    9. <version>4.12version>
    10. <scope>testscope>
    11. dependency>
    12. <dependency>
    13. <groupId>javax.servletgroupId>
    14. <artifactId>javax.servlet-apiartifactId>
    15. <version>4.0.0version>
    16. <scope>providedscope>
    17. dependency>
    18. <dependency>
    19. <groupId>org.mybatisgroupId>
    20. <artifactId>mybatisartifactId>
    21. <version>3.4.5version>
    22. dependency>
    23. <dependency>
    24. <groupId>mysqlgroupId>
    25. <artifactId>mysql-connector-javaartifactId>
    26. <version>5.1.44version>
    27. dependency>
    28. <dependency>
    29. <groupId>org.apache.logging.log4jgroupId>
    30. <artifactId>log4j-coreartifactId>
    31. <version>2.9.1version>
    32. dependency>
    33. <dependency>
    34. <groupId>org.apache.logging.log4jgroupId>
    35. <artifactId>log4j-apiartifactId>
    36. <version>2.9.1version>
    37. dependency>
    38. <dependency>
    39. <groupId>org.apache.logging.log4jgroupId>
    40. <artifactId>log4j-webartifactId>
    41. <version>2.9.1version>
    42. dependency>
    43. dependencies>
    44. <build>
    45. <resources>
    46. <resource>
    47. <directory>src/main/javadirectory>
    48. <includes>
    49. <include>**/*.xmlinclude>
    50. includes>
    51. resource>
    52. <resource>
    53. <directory>src/main/resourcesdirectory>
    54. <includes>
    55. <include>jdbc.propertiesinclude>
    56. <include>*.xmlinclude>
    57. includes>
    58. resource>
    59. resources>
    60. <plugins>
    61. <plugin>
    62. <groupId>org.mybatis.generatorgroupId>
    63. <artifactId>mybatis-generator-maven-pluginartifactId>
    64. <version>1.3.2version>
    65. <dependencies>
    66. <dependency>
    67. <groupId>mysqlgroupId>
    68. <artifactId>mysql-connector-javaartifactId>
    69. <version>5.1.44version>
    70. dependency>
    71. dependencies>
    72. <configuration>
    73. <overwrite>trueoverwrite>
    74. configuration>
    75. plugin>
    76. plugins>
    77. build>

     Jdbc.properties

    1. jdbc.driver=com.mysql.jdbc.Driver
    2. jdbc.url=jdbc:mysql://localhost:3306/mysql?useUnicode=true&characterEncoding=UTF-8
    3. jdbc.username=root
    4. jdbc.password=minjie

    Web.xml

    1. <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
    2. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    3. xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
    4. version="3.1">web-app>

    接下来安装以下插件

    Free mybatis plugin

    Mybatis generator

    mybatis tools

    maven helper 

    mybatis.cfg.xml

    1. configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
    2. <configuration>
    3. <properties resource="jdbc.properties"/>
    4. <settings>
    5. <setting name="logImpl" value="LOG4J2"/>
    6. settings>
    7. <typeAliases>
    8. typeAliases>
    9. <environments default="development">
    10. <environment id="development">
    11. <transactionManager type="jdbc"/>
    12. <dataSource type="POOLED">
    13. <property name="driver"
    14. value="${jdbc.driver}"/>
    15. <property name="url"
    16. value="${jdbc.url}"/>
    17. <property name="username" value="${jdbc.username}"/>
    18. <property name="password" value="${jdbc.password}"/>
    19. dataSource>
    20. environment>
    21. environments>
    22. <mappers>
    23. <mapper resource="com/javaxl/mapper/BookMapper.xml"/>
    24. mappers>
    25. configuration>

    2.基于ssm逆向工程的使用(IDEA)

    1. 安装Mybatis generator插件
    2. 配置generatorConfig.xml
    3. 配置maven运行generator命令
    4. 在pom中处理generatorConfig.xml不能编译问题

     generatorConfig.xml

    1. generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
    2. "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd" >
    3. <generatorConfiguration>
    4. <properties resource="jdbc.properties"/>
    5. <classPathEntry location="D:\\initPath\\mvn_repository\\mysql\\mysql-connector-java\\5.1.44\\mysql-connector-java-5.1.44.jar"/>
    6. <context id="infoGuardian">
    7. <commentGenerator>
    8. <property name="suppressAllComments" value="true"/>
    9. <property name="suppressDate" value="true"/>
    10. commentGenerator>
    11. <jdbcConnection driverClass="${jdbc.driver}"
    12. connectionURL="${jdbc.url}" userId="${jdbc.username}" password="${jdbc.password}"/>
    13. <javaTypeResolver>
    14. <property name="forceBigDecimals" value="false"/>
    15. javaTypeResolver>
    16. <javaModelGenerator targetPackage="com.javaxl.model"
    17. targetProject="src/main/java">
    18. <property name="enableSubPackages" value="false"/>
    19. <property name="constructorBased" value="true"/>
    20. <property name="trimStrings" value="false"/>
    21. <property name="immutable" value="false"/>
    22. javaModelGenerator>
    23. <sqlMapGenerator targetPackage="com.javaxl.mapper"
    24. targetProject="src/main/java">
    25. <property name="enableSubPackages" value="false"/>
    26. sqlMapGenerator>
    27. <javaClientGenerator targetPackage="com.javaxl.mapper"
    28. targetProject="src/main/java" type="XMLMAPPER">
    29. <property name="enableSubPackages" value="false"/>
    30. javaClientGenerator>
    31. <table schema="" tableName="t_mvc_Book" domainObjectName="Book"
    32. enableCountByExample="false" enableDeleteByExample="false"
    33. enableSelectByExample="false" enableUpdateByExample="false">
    34. table>
    35. context>
    36. generatorConfiguration>

    mybatis-generator:generate -e

    3.Mybatis增删改查案例

    SessionUtil.java 

    1. package com.javaxl.util;
    2. import org.apache.ibatis.session.SqlSession;
    3. import org.apache.ibatis.session.SqlSessionFactory;
    4. import org.apache.ibatis.session.SqlSessionFactoryBuilder;
    5. /**
    6. * @author 敏杰
    7. */
    8. public class SessionUtil {
    9. private static SqlSessionFactory sessionFactory;
    10. private static ThreadLocal threadLocal = new ThreadLocal();
    11. static {
    12. sessionFactory = new SqlSessionFactoryBuilder().build(SessionUtil.class.getResourceAsStream("/mybatis.cfg.xml"));
    13. }
    14. public static SqlSession openSession() {
    15. SqlSession session = threadLocal.get();
    16. if (null == session) {
    17. session = sessionFactory.openSession();
    18. threadLocal.set(session);
    19. }
    20. return session;
    21. }
    22. public static void main(String[] args) {
    23. SqlSession session = openSession();
    24. System.out.println(session.getConnection());
    25. session.close();
    26. // System.out.println(session.getConnection());
    27. }
    28. }

    BookService.java

    1. package com.javaxl.service;
    2. import com.javaxl.model.Book;
    3. /**
    4. * @author 敏杰
    5. */
    6. public interface BookService {
    7. int deleteByPrimaryKey(Integer bid);
    8. int insert(Book record);
    9. int insertSelective(Book record);
    10. Book selectByPrimaryKey(Integer bid);
    11. int updateByPrimaryKeySelective(Book record);
    12. int updateByPrimaryKey(Book record);
    13. }

    BookServiceImpl.java

    1. package com.javaxl.service.impl;
    2. import com.javaxl.mapper.BookMapper;
    3. import com.javaxl.model.Book;
    4. import com.javaxl.service.BookService;
    5. /**
    6. * @author 敏杰
    7. */
    8. public class BookServiceImpl implements BookService {
    9. private BookMapper bookMapper;
    10. public BookMapper getBookMapper() {
    11. return bookMapper;
    12. }
    13. public void setBookMapper(BookMapper bookMapper) {
    14. this.bookMapper = bookMapper;
    15. }
    16. @Override
    17. public int deleteByPrimaryKey(Integer bid) {
    18. return bookMapper.deleteByPrimaryKey(bid);
    19. }
    20. @Override
    21. public int insert(Book record) {
    22. return bookMapper.insert(record);
    23. }
    24. @Override
    25. public int insertSelective(Book record) {
    26. return bookMapper.insertSelective(record);
    27. }
    28. @Override
    29. public Book selectByPrimaryKey(Integer bid) {
    30. return bookMapper.selectByPrimaryKey(bid);
    31. }
    32. @Override
    33. public int updateByPrimaryKeySelective(Book record) {
    34. return bookMapper.updateByPrimaryKeySelective(record);
    35. }
    36. @Override
    37. public int updateByPrimaryKey(Book record) {
    38. return bookMapper.updateByPrimaryKey(record);
    39. }
    40. }

    BookServiceImplTest.java

    1. package com.javaxl.test;
    2. import com.javaxl.mapper.BookMapper;
    3. import com.javaxl.model.Book;
    4. import com.javaxl.service.BookService;
    5. import com.javaxl.service.impl.BookServiceImpl;
    6. import com.javaxl.util.SessionUtil;
    7. import org.apache.ibatis.session.SqlSession;
    8. import org.junit.After;
    9. import org.junit.Before;
    10. import org.junit.Test;
    11. /**
    12. * @author 敏杰
    13. */
    14. public class BookServiceImplTest {
    15. private BookService bookService;
    16. private SqlSession sqlSession;
    17. @Before
    18. public void setUp() throws Exception {
    19. BookServiceImpl bookServiceImpl = new BookServiceImpl();
    20. sqlSession = SessionUtil.openSession();
    21. bookServiceImpl.setBookMapper(sqlSession.getMapper(BookMapper.class));
    22. this.bookService = bookServiceImpl;
    23. }
    24. @After
    25. public void tearDown() throws Exception {
    26. sqlSession.commit();
    27. sqlSession.close();
    28. }
    29. @Test
    30. public void insert() {
    31. Book book = new Book();
    32. book.setBname("zzz");
    33. book.setPrice(99f);
    34. book.setBid(10003);
    35. int insert = bookService.insert(book);
    36. }
    37. @Test
    38. public void selectByPrimaryKey() {
    39. Book book = this.bookService.selectByPrimaryKey(66);
    40. System.out.println(book);
    41. }
    42. }

  • 相关阅读:
    安卓BLE蓝牙通讯
    学习笔记-内存管理
    uboot学习预备知识
    python+unittest+requests+HTMLRunner编写接口自动化测试集
    Jenkins CVE-2017-1000353远程代码执行漏洞复现
    [ 基础漏洞篇 ] webpack 前端源码泄露详解
    搬砖日记:vue2 用require引入图片项目编译失败
    Golang中gRPC使用及原理探究
    论文精读——YOLOv3: An Incremental Improvement
    Property和Attribute的区别
  • 原文地址:https://blog.csdn.net/hmjcxy/article/details/126299194