{"id":3062,"date":"2023-01-01T17:02:19","date_gmt":"2023-01-01T09:02:19","guid":{"rendered":"https:\/\/qaqaq.top\/?p=3062"},"modified":"2023-01-01T17:02:20","modified_gmt":"2023-01-01T09:02:20","slug":"%e6%90%ad%e5%bb%bamybatis","status":"publish","type":"post","link":"https:\/\/qaqaq.top\/?p=3062","title":{"rendered":"\u642d\u5efaMyBatis"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">1\u3001\u5f00\u53d1\u73af\u5883<\/h2>\n\n\n\n<p>IDE\uff1aidea 2022.3<\/p>\n\n\n\n<p>\u6784\u5efa\u5de5\u5177\uff1amaven 3.8.1<\/p>\n\n\n\n<p>MySQL\u7248\u672c\uff1aMySQL 8.0<\/p>\n\n\n\n<p>MyBatis\u7248\u672c\uff1aMyBatis 3.5.7<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">2\u3001\u521b\u5efamaven\u5de5\u7a0b<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">a>\u6253\u5305\u65b9\u5f0f\uff1ajar<\/h3>\n\n\n\n<h3 class=\"wp-block-heading\">b>\u5f15\u5165\u4f9d\u8d56<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>    &lt;!-- Mybatis\u6838\u5fc3 -->\r\n    &lt;dependency>\r\n      &lt;groupId>org.mybatis&lt;\/groupId>\r\n      &lt;artifactId>mybatis&lt;\/artifactId>\r\n      &lt;version>3.5.7&lt;\/version>\r\n    &lt;\/dependency>\r\n    &lt;!-- junit\u6d4b\u8bd5 -->\r\n    &lt;dependency>\r\n      &lt;groupId>junit&lt;\/groupId>\r\n      &lt;artifactId>junit&lt;\/artifactId>\r\n      &lt;version>4.12&lt;\/version>\r\n      &lt;scope>test&lt;\/scope>\r\n    &lt;\/dependency>\r\n    &lt;!-- MySQL\u9a71\u52a8 -->\r\n    &lt;dependency>\r\n      &lt;groupId>mysql&lt;\/groupId>\r\n      &lt;artifactId>mysql-connector-java&lt;\/artifactId>\r\n      &lt;version>8.0.31&lt;\/version>\r\n    &lt;\/dependency><\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">3\u3001\u521b\u5efaMyBatis\u7684\u6838\u5fc3\u914d\u7f6e\u6587\u4ef6<\/h2>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>\u4e60\u60ef\u4e0a\u547d\u540d\u4e3amybatis-config.xml\uff0c\u8fd9\u4e2a\u6587\u4ef6\u540d\u4ec5\u4ec5\u53ea\u662f\u5efa\u8bae\uff0c\u5e76\u975e\u5f3a\u5236\u8981\u6c42\u3002\u5c06\u6765\u6574\u5408Spring\u4e4b\u540e\uff0c\u8fd9\u4e2a\u914d\u7f6e\u6587\u4ef6\u53ef\u4ee5\u7701\u7565\uff0c\u6240\u4ee5\u5927\u5bb6\u64cd\u4f5c\u65f6\u53ef\u4ee5\u76f4\u63a5\u590d\u5236\u3001\u7c98\u8d34\u3002<\/p><p>\u6838\u5fc3\u914d\u7f6e\u6587\u4ef6\u4e3b\u8981\u7528\u4e8e\u914d\u7f6e\u8fde\u63a5\u6570\u636e\u5e93\u7684\u73af\u5883\u4ee5\u53caMyBatis\u7684\u5168\u5c40\u914d\u7f6e\u4fe1\u606f<\/p><p>\u6838\u5fc3\u914d\u7f6e\u6587\u4ef6\u5b58\u653e\u7684\u4f4d\u7f6e\u662fsrc\/main\/resources\u76ee\u5f55\u4e0b<\/p><\/blockquote>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?xml version=\"1.0\" encoding=\"UTF-8\" ?>\r\n&lt;!DOCTYPE configuration\r\n        PUBLIC \"-\/\/mybatis.org\/\/DTD Config 3.0\/\/EN\"\r\n        \"http:\/\/mybatis.org\/dtd\/mybatis-3-config.dtd\">\r\n&lt;configuration>\r\n    &lt;!--\u8bbe\u7f6e\u8fde\u63a5\u6570\u636e\u5e93\u7684\u73af\u5883-->\r\n    &lt;environments default=\"development\">\r\n        &lt;environment id=\"development\">\r\n            &lt;transactionManager type=\"JDBC\"\/>\r\n            &lt;dataSource type=\"POOLED\">\r\n                &lt;property name=\"driver\" value=\"com.mysql.jdbc.Driver\"\/>\r\n                &lt;property name=\"url\"\r\n                          value=\"jdbc:mysql:\/\/localhost:3306\/MyBatis\"\/>\r\n                &lt;property name=\"username\" value=\"root\"\/>\r\n                &lt;property name=\"password\" value=\"123456\"\/>\r\n            &lt;\/dataSource>\r\n        &lt;\/environment>\r\n    &lt;\/environments>\r\n    &lt;!--\u5f15\u5165\u6620\u5c04\u6587\u4ef6-->\r\n    &lt;mappers>\r\n        &lt;mapper resource=\"mappers\/UserMapper.xml\"\/>\r\n    &lt;\/mappers><\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">4\u3001\u521b\u5efamapper\u63a5\u53e3<\/h2>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>MyBatis\u4e2d\u7684mapper\u63a5\u53e3\u76f8\u5f53\u4e8e\u4ee5\u524d\u7684dao\u3002\u4f46\u662f\u533a\u522b\u5728\u4e8e\uff0cmapper\u4ec5\u4ec5\u662f\u63a5\u53e3\uff0c\u6211\u4eec\u4e0d\u9700\u8981\u63d0\u4f9b\u5b9e\u73b0\u7c7b\u3002<\/p><\/blockquote>\n\n\n\n<pre class=\"wp-block-code\"><code>public interface UserMapper {\r\n    \/**\r\n     * \u6dfb\u52a0\u7528\u6237\u4fe1\u606f\r\n     *\/\r\n    int insertUser();\r\n}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">5\u3001\u521b\u5efaMyBatis\u7684\u6620\u5c04\u6587\u4ef6<\/h2>\n\n\n\n<p>\u76f8\u5173\u6982\u5ff5\uff1aORM\uff08Object Relationship Mapping\uff09\u5bf9\u8c61\u5173\u7cfb\u6620\u5c04\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>\u5bf9\u8c61\uff1aJava\u7684\u5b9e\u4f53\u7c7b\u5bf9\u8c61<\/li><li>\u5173\u7cfb\uff1a\u5173\u7cfb\u578b\u6570\u636e\u5e93<\/li><li>\u6620\u5c04\uff1a\u4e8c\u8005\u4e4b\u95f4\u7684\u5bf9\u5e94\u5173\u7cfb<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/qaqaq.top\/wp-content\/uploads\/2023\/01\/image-1024x236.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"236\" data-original=\"https:\/\/qaqaq.top\/wp-content\/uploads\/2023\/01\/image-1024x236.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-3064\"  sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/div><\/figure>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>1\u3001\u6620\u5c04\u6587\u4ef6\u7684\u547d\u540d\u89c4\u5219\uff1a<\/p><p>\u8868\u6240\u5bf9\u5e94\u7684\u5b9e\u4f53\u7c7b\u7684\u7c7b\u540d+Mapper.xml<\/p><p>\u4f8b\u5982\uff1a\u8868t_user\uff0c\u6620\u5c04\u7684\u5b9e\u4f53\u7c7b\u4e3aUser\uff0c\u6240\u5bf9\u5e94\u7684\u6620\u5c04\u6587\u4ef6\u4e3aUserMapper.xml<\/p><p>\u56e0\u6b64\u4e00\u4e2a\u6620\u5c04\u6587\u4ef6\u5bf9\u5e94\u4e00\u4e2a\u5b9e\u4f53\u7c7b\uff0c\u5bf9\u5e94\u4e00\u5f20\u8868\u7684\u64cd\u4f5c<\/p><p>MyBatis\u6620\u5c04\u6587\u4ef6\u7528\u4e8e\u7f16\u5199SQL\uff0c\u8bbf\u95ee\u4ee5\u53ca\u64cd\u4f5c\u8868\u4e2d\u7684\u6570\u636e<\/p><p>MyBatis\u6620\u5c04\u6587\u4ef6\u5b58\u653e\u7684\u4f4d\u7f6e\u662fsrc\/main\/resources\/mappers\u76ee\u5f55\u4e0b<\/p><p>2\u3001MyBatis\u4e2d\u53ef\u4ee5\u9762\u5411\u63a5\u53e3\u64cd\u4f5c\u6570\u636e\uff0c\u8981\u4fdd\u8bc1\u4e24\u4e2a\u4e00\u81f4\uff1a<\/p><p>a>mapper\u63a5\u53e3\u7684\u5168\u7c7b\u540d\u548c\u6620\u5c04\u6587\u4ef6\u7684\u547d\u540d\u7a7a\u95f4\uff08namespace\uff09\u4fdd\u6301\u4e00\u81f4<\/p><p>b>mapper\u63a5\u53e3\u4e2d\u65b9\u6cd5\u7684\u65b9\u6cd5\u540d\u548c\u6620\u5c04\u6587\u4ef6\u4e2d\u7f16\u5199SQL\u7684\u6807\u7b7e\u7684id\u5c5e\u6027\u4fdd\u6301\u4e00\u81f4<\/p><\/blockquote>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?xml version=\"1.0\" encoding=\"UTF-8\" ?>\r\n&lt;!DOCTYPE mapper\r\n        PUBLIC \"-\/\/mybatis.org\/\/DTD Mapper 3.0\/\/EN\"\r\n        \"http:\/\/mybatis.org\/dtd\/mybatis-3-mapper.dtd\">\r\n&lt;mapper namespace=\"top.qaqaq.mybatis.mapper.UserMapper\">\r\n    &lt;!--int insertUser();-->\r\n    &lt;insert id=\"insertUser\">\r\n        insert into t_user values(null,'\u5f20\u4e09','123',23,'\u5973')\r\n    &lt;\/insert>\r\n&lt;\/mapper><\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">6\u3001\u901a\u8fc7junit\u6d4b\u8bd5\u529f\u80fd<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>    @Test\r\n    public void testMyBatis() throws IOException {\r\n        \/\/\u8bfb\u53d6MyBatis\u7684\u6838\u5fc3\u914d\u7f6e\u6587\u4ef6\r\n        InputStream is = Resources.getResourceAsStream(\"mybatis-config.xml\");\r\n        \/\/\u521b\u5efaSqlSessionFactoryBuilder\u5bf9\u8c61\r\n        SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();\r\n        \/\/\u901a\u8fc7\u6838\u5fc3\u914d\u7f6e\u6587\u4ef6\u6240\u5bf9\u5e94\u7684\u5b57\u8282\u8f93\u5165\u6d41\u521b\u5efa\u5de5\u5382\u7c7bSqlSessionFactory\uff0c\u751f\u4ea7SqlSession\u5bf9\u8c61\r\n        SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(is);\r\n        \/\/\u521b\u5efaSqlSession\u5bf9\u8c61\uff0c\u6b64\u65f6\u901a\u8fc7SqlSession\u5bf9\u8c61\u6240\u64cd\u4f5c\u7684sql\u90fd\u5fc5\u987b\u624b\u52a8\u63d0\u4ea4\u6216\u56de\u6eda\u4e8b\u52a1\r\n        \/\/SqlSession sqlSession = sqlSessionFactory.openSession();\r\n        \/\/\u521b\u5efaSqlSession\u5bf9\u8c61\uff0c\u6b64\u65f6\u901a\u8fc7SqlSession\u5bf9\u8c61\u6240\u64cd\u4f5c\u7684sql\u90fd\u4f1a\u81ea\u52a8\u63d0\u4ea4\r\n        SqlSession sqlSession = sqlSessionFactory.openSession(true);\r\n        \/\/\u901a\u8fc7\u4ee3\u7406\u6a21\u5f0f\u521b\u5efaUserMapper\u63a5\u53e3\u7684\u4ee3\u7406\u5b9e\u73b0\u7c7b\u5bf9\u8c61\r\n        UserMapper userMapper = sqlSession.getMapper(UserMapper.class);\r\n        \/\/\u8c03\u7528UserMapper\u63a5\u53e3\u4e2d\u7684\u65b9\u6cd5\uff0c\u5c31\u53ef\u4ee5\u6839\u636eUserMapper\u7684\u5168\u7c7b\u540d\u5339\u914d\u5143\u7d20\u6587\u4ef6\uff0c\u901a\u8fc7\u8c03\u7528\u7684\u65b9\u6cd5\u540d\u5339\u914d\u6620\u5c04\u6587\u4ef6\u4e2d\u7684SQL\u6807\u7b7e\uff0c\u5e76\u6267\u884c\u6807\u7b7e\u4e2d\u7684SQL\u8bed\u53e5\r\n        int result = userMapper.insertUser();\r\n        \/\/sqlSession.commit();\r\n        System.out.println(\"\u7ed3\u679c\uff1a\"+result);\r\n    }<\/code><\/pre>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>SqlSession\uff1a\u4ee3\u8868Java\u7a0b\u5e8f\u548c\u6570\u636e\u5e93\u4e4b\u95f4\u7684\u4f1a\u8bdd\u3002\uff08HttpSession\u662fJava\u7a0b\u5e8f\u548c\u6d4f\u89c8\u5668\u4e4b\u95f4\u7684\u4f1a\u8bdd\uff09<\/p><p>SqlSessionFactory\uff1a\u662f\u201c\u751f\u4ea7\u201dSqlSession\u7684\u201c\u5de5\u5382\u201d\u3002<\/p><p>\u5de5\u5382\u6a21\u5f0f\uff1a\u5982\u679c\u521b\u5efa\u67d0\u4e00\u4e2a\u5bf9\u8c61\uff0c\u4f7f\u7528\u7684\u8fc7\u7a0b\u57fa\u672c\u56fa\u5b9a\uff0c\u90a3\u4e48\u6211\u4eec\u5c31\u53ef\u4ee5\u628a\u521b\u5efa\u8fd9\u4e2a\u5bf9\u8c61\u7684\u76f8\u5173\u4ee3\u7801\u5c01\u88c5\u5230\u4e00\u4e2a\u201c\u5de5\u5382\u7c7b\u201d\u4e2d\uff0c\u4ee5\u540e\u90fd\u4f7f\u7528\u8fd9\u4e2a\u5de5\u5382\u7c7b\u6765\u201c\u751f\u4ea7\u201d\u6211\u4eec\u9700\u8981\u7684\u5bf9\u8c61\u3002<\/p><\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\">7\u3001\u52a0\u5165log4j\u65e5\u5fd7\u529f\u80fd<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">a>\u52a0\u5165\u4f9d\u8d56<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>    &lt;!-- log4j\u65e5\u5fd7 -->\r\n    &lt;dependency>\r\n      &lt;groupId>log4j&lt;\/groupId>\r\n      &lt;artifactId>log4j&lt;\/artifactId>\r\n      &lt;version>1.2.17&lt;\/version>\r\n    &lt;\/dependency><\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">b>\u52a0\u5165log4j\u7684\u914d\u7f6e\u6587\u4ef6<\/h3>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>log4j\u7684\u914d\u7f6e\u6587\u4ef6\u540d\u4e3alog4j.xml\uff0c\u5b58\u653e\u7684\u4f4d\u7f6e\u662fsrc\/main\/resources\u76ee\u5f55\u4e0b<\/p><\/blockquote>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?xml version=\"1.0\" encoding=\"UTF-8\" ?>\r\n&lt;!DOCTYPE log4j:configuration SYSTEM \"log4j.dtd\">\r\n&lt;log4j:configuration xmlns:log4j=\"http:\/\/jakarta.apache.org\/log4j\/\">\r\n    &lt;appender name=\"STDOUT\" class=\"org.apache.log4j.ConsoleAppender\">\r\n        &lt;param name=\"Encoding\" value=\"UTF-8\" \/>\r\n        &lt;layout class=\"org.apache.log4j.PatternLayout\">\r\n            &lt;param name=\"ConversionPattern\" value=\"%-5p %d{MM-dd HH:mm:ss,SSS}%m (%F:%L) \\n\" \/>\r\n        &lt;\/layout>\r\n    &lt;\/appender>\r\n    &lt;logger name=\"java.sql\">\r\n        &lt;level value=\"debug\" \/>\r\n    &lt;\/logger>\r\n    &lt;logger name=\"org.apache.ibatis\">\r\n        &lt;level value=\"info\" \/>\r\n    &lt;\/logger>\r\n    &lt;root>\r\n        &lt;level value=\"debug\" \/>\r\n        &lt;appender-ref ref=\"STDOUT\" \/>\r\n    &lt;\/root>\r\n&lt;\/log4j:configuration><\/code><\/pre>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p><strong>\u65e5\u5fd7\u7684\u7ea7\u522b<\/strong><\/p><p>FATAL(\u81f4\u547d)>ERROR(\u9519\u8bef)>WARN(\u8b66\u544a)>INFO(\u4fe1\u606f)>DEBUG(\u8c03\u8bd5)<\/p><p>\u4ece\u5de6\u5230\u53f3\u6253\u5370\u7684\u5185\u5bb9\u8d8a\u6765\u8d8a\u8be6\u7ec6<\/p><\/blockquote>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>1\u3001\u5f00\u53d1\u73af\u5883 IDE\uff1aidea 2022.3 \u6784\u5efa\u5de5\u5177\uff1amaven 3.8.1 MySQL\u7248\u672c\uff1aMySQL 8 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[108],"tags":[111],"class_list":["post-3062","post","type-post","status-publish","format-standard","hentry","category-mybatis-code","tag-mybatis"],"_links":{"self":[{"href":"https:\/\/qaqaq.top\/index.php?rest_route=\/wp\/v2\/posts\/3062"}],"collection":[{"href":"https:\/\/qaqaq.top\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/qaqaq.top\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/qaqaq.top\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/qaqaq.top\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3062"}],"version-history":[{"count":1,"href":"https:\/\/qaqaq.top\/index.php?rest_route=\/wp\/v2\/posts\/3062\/revisions"}],"predecessor-version":[{"id":3065,"href":"https:\/\/qaqaq.top\/index.php?rest_route=\/wp\/v2\/posts\/3062\/revisions\/3065"}],"wp:attachment":[{"href":"https:\/\/qaqaq.top\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3062"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/qaqaq.top\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3062"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/qaqaq.top\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3062"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}