• mybatis学习(15):mybatis连接mysql数据库


    目录结构

     

     

    com.geyao.mybatis.mapper

    BlogMapper类

    package com.geyao.mybatis.mapper;
     
    import com.geyao.mybatis.pojo.Blog;
     
    public interface BlogMapper {
        Blog selectBlog(String id);
    }
    BlogMapper.xml

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <!-- 为这个mapper指定一个唯一的namespace,namespace的值习惯上设置成包名+sql映射文件名,这样就能够保证namespace的值是唯一的
    例如namespace="me.gacl.mapping.userMapper"就是me.gacl.mapping(包名)+userMapper(userMapper.xml文件去除后缀)
     -->
    <mapper namespace="com.geyao.mybatis.mapper.BlogMapper">
        <!-- 在select标签中编写查询的SQL语句, 设置select标签的id属性为getUser,id属性值必须是唯一的,不能够重复
        使用parameterType属性指明查询时使用的参数类型,resultType属性指明查询返回的结果集类型
        resultType="me.gacl.domain.User"就表示将查询结果封装成一个User类的对象返回
        User类就是users表所对应的实体类
        -->
        <!-- 
            根据id查询得到一个user对象
         -->
        <select id="selectBlog"  resultType="Blog">
            select * from Blog where id=#{id}
        </select>
    </mapper>
    com.geyao.mybatis.pojo

    Blog类

    package com.geyao.mybatis.pojo;
     
    public class Blog {
        private String id;
        private String title;
        private int authod_id;
        private String state;
        private Boolean featured;
        private String style;
        public String getId() {
            return id;
        }
        public void setId(String id) {
            this.id = id;
        }
        public String getTitle() {
            return title;
        }
        public void setTitle(String title) {
            this.title = title;
        }
        public int getAuthod_id() {
            return authod_id;
        }
        public void setAuthod_id(int authod_id) {
            this.authod_id = authod_id;
        }
        public String getState() {
            return state;
        }
        public void setState(String state) {
            this.state = state;
        }
        public Boolean getFeatured() {
            return featured;
        }
        public void setFeatured(Boolean featured) {
            this.featured = featured;
        }
        public String getStyle() {
            return style;
        }
        public void setStyle(String style) {
            this.style = style;
        }
        @Override
        public String toString() {
            return "Blog [id=" + id + ", title=" + title + ", authod_id=" + authod_id + ", state=" + state + ", featured="
                    + featured + ", style=" + style + "]";
        }
        
        
        
    }
    com.geyao.mybatis.util

    MybatisUtil类

    package com.geyao.mybatis.util;
     
    import java.io.InputStream;
    import java.io.Reader;
     
    import org.apache.ibatis.io.Resources;
    import org.apache.ibatis.session.SqlSession;
    import org.apache.ibatis.session.SqlSessionFactory;
    import org.apache.ibatis.session.SqlSessionFactoryBuilder;
     
    public class MyBatisUtil {
        private static SqlSessionFactory sqlSessionFactory =null;
        static {
            try {
                InputStream in = Resources.getResourceAsStream("mybatis-config.xml");
                sqlSessionFactory = new SqlSessionFactoryBuilder().build(in);
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        private MyBatisUtil() {}
        
        public static SqlSession getSqlSession() {
            return sqlSessionFactory.openSession();
        }
    }
    log4j.properties

    ### \u914D\u7F6E\u6839 ###
    log4j.rootLogger = debug,console ,fileAppender,dailyRollingFile,ROLLING_FILE,MAIL,DATABASE
     
    ### \u8BBE\u7F6E\u8F93\u51FAsql\u7684\u7EA7\u522B\uFF0C\u5176\u4E2Dlogger\u540E\u9762\u7684\u5185\u5BB9\u5168\u90E8\u4E3Ajar\u5305\u4E2D\u6240\u5305\u542B\u7684\u5305\u540D ###
    log4j.logger.org.apache=dubug
    log4j.logger.java.sql.Connection=dubug
    log4j.logger.java.sql.Statement=dubug
    log4j.logger.java.sql.PreparedStatement=dubug
    log4j.logger.java.sql.ResultSet=dubug
     
    ### \u914D\u7F6E\u8F93\u51FA\u5230\u63A7\u5236\u53F0 ###
    log4j.appender.console = org.apache.log4j.ConsoleAppender
    log4j.appender.console.Target = System.out
    log4j.appender.console.layout = org.apache.log4j.PatternLayout
    log4j.appender.console.layout.ConversionPattern =  %d{ABSOLUTE} %5p %c{1}:%L - %m%n
    mybatis-config.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
    <configuration>
     
    <typeAliases>
        <typeAlias type="com.geyao.mybatis.pojo.Blog" alias="Blog"/>
    </typeAliases>
        <environments default="development">
            <environment id="development">
                <transactionManager type="JDBC" />
                <!-- 配置数据库连接信息 -->
                <dataSource type="POOLED">
                    <property name="driver" value="com.mysql.cj.jdbc.Driver" />
                    <property name="url" value="jdbc:mysql://localhost:3306/mybatis?serverTimezone=GMT%2B8" />
                    <property name="username" value="root" />
                    <property name="password" value="123" />
                </dataSource>
            </environment>
        </environments>
          <mappers>
            <!-- 注册userMapper.xml文件, 
             userMapper.xml位于me.gacl.mapping这个包下,所以resource写成me/gacl/mapping/userMapper.xml-->
             <mapper resource="com/geyao/mybatis/mapper/BlogMapper.xml"/>
         </mappers>
    </configuration>
    单元测试

    com.geyao.mybatis.util

    testSelectBlog类

    package com.geyao.mybatis.mapper;
     
    import org.apache.ibatis.session.SqlSession;
    import org.junit.Test;
     
    import com.geyao.mybatis.pojo.Blog;
    import com.geyao.mybatis.util.MyBatisUtil;
     
    public class testSelectBlog {
    @Test
    public void testSelectBlog() {
        SqlSession session =MyBatisUtil.getSqlSession();
        BlogMapper blogMapper =session.getMapper(BlogMapper.class);
        
        Blog blog = blogMapper.selectBlog("1");
        System.out.println(blog);
    }
    }
    jar包

    链接:https://pan.baidu.com/s/1g6NgzfLc5uK9S4VL-03lHg
    提取码:4r2m

    运行结果

     


     

  • 相关阅读:
    SpringBoot SpringBoot 开发实用篇 4 数据层解决方案 4.3 H2数据库
    lambda表达式(C++11)
    优思学院|中质协六西格玛考试形式是什么样的?
    golang如何判断一个字符串中是否包含另一个字符串
    零基础学前端(七)将项目发布成网站
    通过定时 SQL 提取阿里云API 网关访问日志指标
    IDEA整合Tomcat服务器、如何创建Web工程、Web工程目录的介绍
    木聚糖-聚乙二醇-聚丙烯酸|PAA-PEG-Xylan|聚丙烯酸-PEG-木聚糖
    记录:树莓派 安装opencv 完整的艰辛过程
    网络通信设备之网络路由技术详解
  • 原文地址:https://blog.csdn.net/qq_41632427/article/details/125632734