{"id":98,"date":"2020-07-24T20:50:29","date_gmt":"2020-07-24T12:50:29","guid":{"rendered":"http:\/\/121.89.208.222\/?p=98"},"modified":"2020-12-10T14:23:36","modified_gmt":"2020-12-10T06:23:36","slug":"mybatis%e5%9f%ba%e4%ba%8e%e6%b3%a8%e8%a7%a3%e7%9a%84%e7%8e%af%e5%a2%83%e6%90%ad%e5%bb%ba","status":"publish","type":"post","link":"http:\/\/moyisuiying.com\/index.php\/mybatis\/98.html","title":{"rendered":"mybatis\u57fa\u4e8e\u6ce8\u89e3\u7684\u73af\u5883\u642d\u5efa"},"content":{"rendered":"\n<p>1.\u521b\u5efamaven\u5de5\u7a0b\uff0c\u7136\u540e\u521b\u5efa\u76f8\u5e94\u7684\u76ee\u5f55\u5982\u56fe\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img  loading=\"lazy\" width=\"310\" height=\"354\"  class=\"lazyload\" data-src=\"http:\/\/moyisuiying.com\/wp-content\/uploads\/2020\/07\/image.png\" src=\"https:\/\/cdn.jsdelivr.net\/gh\/moezx\/cdn@3.0.2\/img\/svg\/loader\/trans.ajax-spinner-preloader.svg\" onerror=\"imgError(this)\"  alt=\"\" class=\"wp-image-99\" srcset=\"http:\/\/moyisuiying.com\/wp-content\/uploads\/2020\/07\/image.png 310w, http:\/\/moyisuiying.com\/wp-content\/uploads\/2020\/07\/image-263x300.png 263w\" sizes=\"(max-width: 310px) 100vw, 310px\" \/><\/figure >\n<noscript><img loading=\"lazy\" width=\"310\" height=\"354\" src=\"http:\/\/moyisuiying.com\/wp-content\/uploads\/2020\/07\/image.png\" alt=\"\" class=\"wp-image-99\" srcset=\"http:\/\/moyisuiying.com\/wp-content\/uploads\/2020\/07\/image.png 310w, http:\/\/moyisuiying.com\/wp-content\/uploads\/2020\/07\/image-263x300.png 263w\" sizes=\"(max-width: 310px) 100vw, 310px\" \/><\/figure><\/noscript>\n\n\n\n<p>2.\u5728pom.xml\u6587\u4ef6\u4e2d\u5bfc\u5165\u9879\u76ee\u4f9d\u8d56<\/p>\n\n\n\n<p><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\n&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?>\n&lt;project xmlns=\"http:\/\/maven.apache.org\/POM\/4.0.0\"\n         xmlns:xsi=\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\"\n         xsi:schemaLocation=\"http:\/\/maven.apache.org\/POM\/4.0.0 http:\/\/maven.apache.org\/xsd\/maven-4.0.0.xsd\">\n    &lt;modelVersion>4.0.0&lt;\/modelVersion>\n\n    &lt;groupId>org.example&lt;\/groupId>\n    &lt;artifactId>demo1&lt;\/artifactId>\n    &lt;version>1.0-SNAPSHOT&lt;\/version>\n    &lt;dependencies>\n        &lt;!-- \u5f15\u5165mybatis\u7684\u73af\u5883\u4f9d\u8d56 -->\n        &lt;dependency>\n            &lt;groupId>org.mybatis&lt;\/groupId>\n            &lt;artifactId>mybatis&lt;\/artifactId>\n            &lt;version>3.5.4&lt;\/version>\n        &lt;\/dependency>\n\n        &lt;!-- \u5f15\u5165MySQL\u4f9d\u8d56      -->\n        &lt;dependency>\n            &lt;groupId>mysql&lt;\/groupId>\n            &lt;artifactId>mysql-connector-java&lt;\/artifactId>\n            &lt;version>8.0.21&lt;\/version>\n        &lt;\/dependency>\n        &lt;!-- \u5f15\u5165junit\u4f9d\u8d56 -->\n        &lt;dependency>\n            &lt;groupId>org.junit.jupiter&lt;\/groupId>\n            &lt;artifactId>junit-jupiter-api&lt;\/artifactId>\n            &lt;version>5.7.0-M1&lt;\/version>\n            &lt;scope>test&lt;\/scope>\n        &lt;\/dependency>\n\n    &lt;\/dependencies>\n\n&lt;\/project><\/code><\/pre>\n\n\n\n<p>3.\u521b\u5efa\u6570\u636e\u5e93mybatisdemo\uff0c\u521b\u5efaUser\u8868\u5e76\u63d2\u5165\u6570\u636e\u3002<\/p>\n\n\n\n<p>\u521b\u5efa\u6570\u636e\u5e93\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>create database if not exists mybatisdemo;<\/code><\/pre>\n\n\n\n<p>\u521b\u5efaUser\u8868\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>create table if not exists user(id int(4) auto_increment primary key,name varchar(16) not null,password varchar(16) not null,age int(3) ,createtime datetime default now());\n<\/code><\/pre>\n\n\n\n<p>\u63d2\u5165\u6570\u636e\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>insert into user(name,password,age,createtime) values('A','A',32,now());\ninsert into user(name,password,age,createtime) values('B','B',53,now());\ninsert into user(name,password,age,createtime) values('C','C',87,now());\n<\/code><\/pre>\n\n\n\n<p>\u67e5\u8be2\u6d4b\u8bd5\uff1a<br><img   class=\"lazyload\" data-src=\"https:\/\/img-blog.csdnimg.cn\/2020072410342027.png?x-oss-process=image\/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTE4NzAwMjI=,size_16,color_FFFFFF,t_70\" src=\"https:\/\/cdn.jsdelivr.net\/gh\/moezx\/cdn@3.0.2\/img\/svg\/loader\/trans.ajax-spinner-preloader.svg\" onerror=\"imgError(this)\"  alt=\"\u5728\u8fd9\u91cc\u63d2\u5165\u56fe\u7247\u63cf\u8ff0\"><\/p >\n<noscript><img src=\"https:\/\/img-blog.csdnimg.cn\/2020072410342027.png?x-oss-process=image\/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTE4NzAwMjI=,size_16,color_FFFFFF,t_70\" alt=\"\u5728\u8fd9\u91cc\u63d2\u5165\u56fe\u7247\u63cf\u8ff0\"><\/p><\/noscript>\n\n\n\n<p>4.\u5728resources\u4e2d\u521b\u5efamybatis-config.xml\u6587\u4ef6\u5e76\u914d\u7f6emybatis-config.xml<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n&lt;!DOCTYPE configuration\n        PUBLIC \"-\/\/mybatis.org\/\/DTD Config 3.0\/\/EN\"\n        \"http:\/\/mybatis.org\/dtd\/mybatis-3-config.dtd\">\n&lt;configuration>\n    &lt;environments default=\"development\">\n        &lt;environment id=\"development\">\n            &lt;!-- \u914d\u7f6e\u4e8b\u52a1\u7c7b\u578b  -->\n            &lt;transactionManager type=\"JDBC\"\/>\n            &lt;!--   \u914d\u7f6e\u8fde\u63a5\u4fe1\u606f         -->\n            &lt;dataSource type=\"POOLED\">\n            &lt;!--       \u914d\u7f6e\u52a0\u8f7dMySQL\u7684\u9a71\u52a8         -->\n                &lt;property name=\"driver\" value=\"com.mysql.cj.jdbc.Driver\"\/>\n                &lt;!--      MySQL\u8fde\u63a5\u7684\u6570\u636e\u5e93\u5730\u5740\uff0c\u7b14\u8005\u8fd9\u91cc\u662f\u5728\u672c\u5730localhost\u4e0a\u6d4b\u8bd5\uff0c\u5e76\u4e14\u6570\u636e\u5e93\u7684\u540d\u79f0\u4e3amybatisdemo     -->\n                &lt;property name=\"url\" value=\"jdbc:mysql\/\/localhost:3306\/mybatisdemo?serverTimezone=UTC\"\/>\n                &lt;!--      MySQL\u8fde\u63a5\u7684\u7528\u6237\u540d         -->\n                &lt;property name=\"username\" value=\"root\"\/>\n                &lt;!--      MySQL\u7684\u8fde\u63a5\u5bc6\u7801        -->\n                &lt;property name=\"password\" value=\"root\"\/>\n            &lt;\/dataSource>\n        &lt;\/environment>\n    &lt;\/environments>\n    &lt;mappers>\n        \n    &lt;\/mappers>\n&lt;\/configuration>\n<\/code><\/pre>\n\n\n\n<p>6.\u5728entity\u5305\u4e2d\u521b\u5efaUser.java\u6587\u4ef6\u5bf9\u5e94\u6570\u636e\u5e93\u7684User\u8868<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>package entity;\n\nimport java.io.Serializable;\nimport java.util.Date;\n\n\/**\n * Classname:User\n *\n * @description:\u7528\u6237\u7c7b\n * @author: \u964c\u610f\u968f\u5f71\n * @Date: 2020-07-24 09:49\n * @Version: 1.0\n **\/\npublic class User implements Serializable {\n    \/\/\u7528\u6237ID\u4e3b\u952e\n    private Integer id;\n    \/\/\u7528\u6237\u540d\n    private String name;\n    \/\/\u5bc6\u7801\n    private  String password;\n    \/\/\u5e74\u9f84\n    private  Integer age;\n    \/\/\u521b\u5efa\u65e5\u671f\n    private  Date createTime;\n\n    public User() {\n    }\n\n    public User(Integer id, String name, String password, Integer age, Date createTime) {\n        this.id = id;\n        this.name = name;\n        this.password = password;\n        this.age = age;\n        this.createTime = createTime;\n    }\n\n    public Integer getId() {\n        return id;\n    }\n\n    public void setId(Integer id) {\n        this.id = id;\n    }\n\n    public String getName() {\n        return name;\n    }\n\n    public void setName(String name) {\n        this.name = name;\n    }\n\n    public String getPassword() {\n        return password;\n    }\n\n    public void setPassword(String password) {\n        this.password = password;\n    }\n\n    public Integer getAge() {\n        return age;\n    }\n\n    public void setAge(Integer age) {\n        this.age = age;\n    }\n\n    public Date getCreateTime() {\n        return createTime;\n    }\n\n    public void setCreateTime(Date createTime) {\n        this.createTime = createTime;\n    }\n\n    @Override\n    public String toString() {\n        return \"User{\" +\n                \"id=\" + id +\n                \", name='\" + name + '\\'' +\n                \", password='\" + password + '\\'' +\n                \", age=\" + age +\n                \", createTime=\" + createTime +\n                '}';\n    }\n}\n\n<\/code><\/pre>\n\n\n\n<p>7.\u5728dao\u5305\u4e2d\u521b\u5efaUserDao.java \u63a5\u53e3<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>package dao;\n\nimport entity.User;\nimport org.apache.ibatis.annotations.Select;\n\nimport java.util.List;\n\n\/**\n * Classname:mybatisdemo\n * @description:User\u7684dao\u63a5\u53e3\n * @author: \u964c\u610f\u968f\u5f71\n * @Date: 2020-07-24 10:35\n *\/\npublic interface UserDao {\n    \/**\n     * @date: 2020\/7\/24 0024 10:41\n     * @description:\u83b7\u53d6\u6240\u6709\u7684\u7528\u6237\u4fe1\u606f\n     * @return: \u8fd4\u56de\u5305\u542b\u6240\u6709\u7684\u7528\u6237\u7684list\n     *\/\n    @Select(\"select *from user\")\n    List&lt;User> getAll();\n\n\n}<\/code><\/pre>\n\n\n\n<p>8.\u5728mybatis-config.xml\u7684 \u6807\u7b7e\u4e2d\u6dfb\u52a0\u6307\u5b9a\u914d\u7f6e\u6587\u4ef6\u7684\u7684\u4f4d\u7f6e\uff0c\u66f4\u65b0mybatis-config.xml<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n&lt;!DOCTYPE configuration\n        PUBLIC \"-\/\/mybatis.org\/\/DTD Config 3.0\/\/EN\"\n        \"http:\/\/mybatis.org\/dtd\/mybatis-3-config.dtd\">\n&lt;!--mybatis\u7684\u4e3b\u914d\u7f6e\u6587\u4ef6-->\n&lt;configuration>\n    &lt;environments default=\"development\">\n        &lt;environment id=\"development\">\n            &lt;!-- \u914d\u7f6e\u4e8b\u52a1\u7c7b\u578b  -->\n            &lt;transactionManager type=\"JDBC\"\/>\n            &lt;!--   \u914d\u7f6e\u8fde\u63a5\u4fe1\u606f         -->\n            &lt;dataSource type=\"POOLED\">\n                &lt;!--       \u914d\u7f6e\u52a0\u8f7dMySQL\u7684\u9a71\u52a8         -->\n                &lt;property name=\"driver\" value=\"com.mysql.cj.jdbc.Driver\"\/>\n                &lt;!--      MySQL\u8fde\u63a5\u7684\u6570\u636e\u5e93\u5730\u5740\uff0c\u7b14\u8005\u8fd9\u91cc\u662f\u5728\u672c\u5730localhost\u4e0a\u6d4b\u8bd5\uff0c\u5e76\u4e14\u6570\u636e\u5e93\u7684\u540d\u79f0\u4e3amybatisdemo     -->\n                &lt;property name=\"url\" value=\"jdbc:mysql:\/\/localhost:3306\/mybatisdemo?serverTimezone=UTC\"\/>\n                &lt;!--      MySQL\u8fde\u63a5\u7684\u7528\u6237\u540d         -->\n                &lt;property name=\"username\" value=\"root\"\/>\n                &lt;!--      MySQL\u7684\u8fde\u63a5\u5bc6\u7801        -->\n                &lt;property name=\"password\" value=\"root\"\/>\n            &lt;\/dataSource>\n        &lt;\/environment>\n    &lt;\/environments>\n    &lt;!--   \u6307\u5b9a\u914d\u7f6e\u6587\u4ef6\u7684\u7684\u4f4d\u7f6e\uff0c\u6620\u5c04\u6587\u4ef6\u6307\u7684\u662f\u6bcf\u4e2adao\u7684\u4f4d\u7f6e-->\n    &lt;mappers>\n        &lt;!--  \u6307\u5b9aUserdao\u7684\u4f4d\u7f6e,\u4f7f\u7528XML\u914d\u7f6e\u65f6\u4f7f\u7528resource\u6807\u7b7e-->\n        &lt;!--\u4f7f\u7528\u6ce8\u89e3\u914d\u7f6e\u7684\u65f6\u5019\u4f7f\u7528class\u6807\u7b7e,\u4f7f\u7528UserDao\u7684\u5168\u9650\u5b9a\u7c7b\u540d   -->\n        &lt;mapper class=\"dao.UserDao\">&lt;\/mapper>\n    &lt;\/mappers>\n&lt;\/configuration><\/code><\/pre>\n\n\n\n<p>9.\u65b0\u5efa\u4e00\u4e2a\u6d4b\u8bd5<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>package dao;\n\nimport entity.User;\nimport org.apache.ibatis.io.Resources;\nimport org.apache.ibatis.session.SqlSession;\nimport org.apache.ibatis.session.SqlSessionFactory;\nimport org.apache.ibatis.session.SqlSessionFactoryBuilder;\nimport org.junit.jupiter.api.Test;\n\nimport java.io.IOException;\nimport java.io.InputStream;\nimport java.util.List;\n\n\/**\n * Classname:UserDaoTest\n *\n * @description:\u6d4b\u8bd5Userdao\n * @author: \u964c\u610f\u968f\u5f71\n * @Date: 2020-07-24 10:49\n * @Version: 1.0\n **\/\npublic class UserDaoTest {\n    @Test\n    public void testGetUserAll(){\n        try {\n            \/\/\u8bfb\u53d6\u914d\u7f6e\u6587\u4ef6\n            InputStream inputStream = Resources.getResourceAsStream(\"mybatis-config.xml\");\n            \/\/\u5b9e\u4f8b\u5316SqlSessionFactoryBuilder\n            SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();\n          \/\/\u6784\u5efaSqlSessionFactory\n            SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(inputStream);\n           \/\/\u4ea7\u751f\u4e00\u4e2aSqlSession\n            SqlSession sqlSession = sqlSessionFactory.openSession();\n            \/\/\u5229\u7528SqlSession\u521b\u5efaUserDAao\u7684\u4ee3\u7406\u5bf9\u8c61\n            UserDao userDao = sqlSession.getMapper(UserDao.class);\n            \/\/\u5229\u7528\u4ee3\u7406\u5bf9\u8c61\u6267\u884c\u65b9\u6cd5\n            List&lt;User> userList = userDao.getAll();\n            for (User u:userList ) {\n                System.out.println(u);\n            }\n\/\/\u5173\u95ed\u8d44\u6e90\n            sqlSession.close();\n\n        } catch (IOException e) {\n            e.printStackTrace();\n        }\n    }\n}\n\n<\/code><\/pre>\n\n\n\n<p>\u5b8c\u6574\u7684\u76ee\u5f55\u7ed3\u6784\uff1a<\/p>\n\n\n\n<p><img   class=\"lazyload\" data-src=\"https:\/\/img-blog.csdnimg.cn\/20200724203434244.png?x-oss-process=image\/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTE4NzAwMjI=,size_16,color_FFFFFF,t_70\" src=\"https:\/\/cdn.jsdelivr.net\/gh\/moezx\/cdn@3.0.2\/img\/svg\/loader\/trans.ajax-spinner-preloader.svg\" onerror=\"imgError(this)\"  alt=\"\u5728\u8fd9\u91cc\u63d2\u5165\u56fe\u7247\u63cf\u8ff0\"><\/p >\n<noscript><img src=\"https:\/\/img-blog.csdnimg.cn\/20200724203434244.png?x-oss-process=image\/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTE4NzAwMjI=,size_16,color_FFFFFF,t_70\" alt=\"\u5728\u8fd9\u91cc\u63d2\u5165\u56fe\u7247\u63cf\u8ff0\"><\/p><\/noscript>\n\n\n\n<p>\u8fd0\u884c\u622a\u56fe\uff1a<br><img   class=\"lazyload\" data-src=\"https:\/\/img-blog.csdnimg.cn\/20200724132726356.png?x-oss-process=image\/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTE4NzAwMjI=,size_16,color_FFFFFF,t_70\" src=\"https:\/\/cdn.jsdelivr.net\/gh\/moezx\/cdn@3.0.2\/img\/svg\/loader\/trans.ajax-spinner-preloader.svg\" onerror=\"imgError(this)\"  alt=\"\u5728\u8fd9\u91cc\u63d2\u5165\u56fe\u7247\u63cf\u8ff0\"><\/p >\n<noscript><img src=\"https:\/\/img-blog.csdnimg.cn\/20200724132726356.png?x-oss-process=image\/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTE4NzAwMjI=,size_16,color_FFFFFF,t_70\" alt=\"\u5728\u8fd9\u91cc\u63d2\u5165\u56fe\u7247\u63cf\u8ff0\"><\/p><\/noscript>\n\n\n\n<p><strong>\u8be5demo\u7684\u9879\u76ee\u6e90\u7801\u5df2\u7ecf\u4e0a\u4f20\u5230\u670d\u52a1\u5668\uff0c\u53ef\u70b9\u51fb\u94fe\u63a5\u5730\u5740\u76f4\u63a5\u4e0b\u8f7d\u89e3\u538b\u540e\u5bfc\u5165idea\u5373\u53ef\uff1a<\/strong><a href=\"http:\/\/moyisuiying.com\/wp-content\/uploads\/2020\/07\/demo1.zip\">http:\/\/moyisuiying.com\/wp-content\/uploads\/2020\/07\/demo1.zip<\/a><\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u57fa\u4e8e\u6ce8\u89e3\u642d\u5efamybatis\u73af\u5883<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[4],"tags":[13,15],"_links":{"self":[{"href":"http:\/\/moyisuiying.com\/index.php\/wp-json\/wp\/v2\/posts\/98"}],"collection":[{"href":"http:\/\/moyisuiying.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/moyisuiying.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/moyisuiying.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/moyisuiying.com\/index.php\/wp-json\/wp\/v2\/comments?post=98"}],"version-history":[{"count":1,"href":"http:\/\/moyisuiying.com\/index.php\/wp-json\/wp\/v2\/posts\/98\/revisions"}],"predecessor-version":[{"id":217,"href":"http:\/\/moyisuiying.com\/index.php\/wp-json\/wp\/v2\/posts\/98\/revisions\/217"}],"wp:attachment":[{"href":"http:\/\/moyisuiying.com\/index.php\/wp-json\/wp\/v2\/media?parent=98"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/moyisuiying.com\/index.php\/wp-json\/wp\/v2\/categories?post=98"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/moyisuiying.com\/index.php\/wp-json\/wp\/v2\/tags?post=98"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}