• MyBatis学习-入门


    eclipse + jdk 1.8 + mybatis 

    1、数据库准备

    安装mysql数据库,建立数据库test,在test库下建立测试的表

    CREATE TABLE `t_user` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `name` varchar(20) DEFAULT NULL,
      `pass` varchar(20) DEFAULT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=24 DEFAULT CHARSET=utf8;
    INSERT INTO `t_user` VALUES ('1', 'ssssssssssssssss', 'ddsssssssdd');  

    2、创建maven工程

    (1)使用eclipse创建maven工程,设置pom.xml:添加mybatis和mysql的驱动,并设置jdk版本

        <dependencies>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.12</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.mybatis</groupId>
                <artifactId>mybatis</artifactId>
                <version>3.4.5</version>
            </dependency>
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>6.0.6</version>
            </dependency>
    
        </dependencies>
        <build>
            <plugins>
                <!-- compiler插件, 设定JDK版本 -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <configuration>
                        <source>1.8</source> <!-- 源代码使用的开发版本 -->
                        <target>1.8</target> <!-- 需要生成的目标class文件的编译版本 -->
                        <!-- 一般而言,target与source是保持一致的,但是,有时候为了让程序能在其他版本的jdk中运行(对于低版本目标jdk,源代码中需要没有使用低版本jdk中不支持的语法),会存在target不同于source的情况 -->
                    </configuration>
                </plugin>
            </plugins>
        </build>

    在工程目录上,右键菜单选择“Maven” ,“Update Project” ,更新此工程,使设置生效。

    (2)创建resources资源文件夹

    在工程目录上,右键菜单"New",“Source Folder” ,新建资源文件目录resources

    3、创建与t_user表对应的Java Bean对象

    在src/test下建立包com.test,在该包下建立类User

    package com.test;
    
    public class User {
    
        private int id;
        private String name;
        private String pass;
    
        public int getId() {
            return id;
        }
    
        public void setId(int id) {
            this.id = id;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public String getPass() {
            return pass;
        }
    
        public void setPass(String pass) {
            this.pass = pass;
        }
    
    }
    View Code

    4、在resources目录下创建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>
        <environments default="development">
            <environment id="development">
                <transactionManager type="JDBC" />
                <dataSource type="POOLED">
                    <property name="driver" value="com.mysql.jdbc.Driver" />
                    <property name="url"
                        value="jdbc:mysql://127.0.0.1:3306/test?characterEncoding=utf-8&amp;serverTimezone=UTC" />
                    <property name="username" value="root" />
                    <property name="password" value="root" />
                </dataSource>
            </environment>
        </environments>
        <mappers>
            <!--这个文件下面将创建 -->
            <mapper resource="UserMapper.xml" />
        </mappers>
    </configuration>
    View Code

    5、在resources目录下创建UserMapper.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="User">
        <!--resultType 表示com.test.User这样一个实体对象 -->
        <select id="selectUser" parameterType="int" resultType="com.test.User">
            select *
            from t_user where id = #{id}
        </select>
    </mapper>
    View Code

    6、在com.test下创建测试类Test,内容如下:

    package com.test;
    
    import java.io.IOException;
    import java.io.InputStream;
    
    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 Test {
        static String resource = "mybatis-config.xml";
    
        public static void main(String[] args) throws IOException {
    
            InputStream inputstream = Resources.getResourceAsStream(resource);
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputstream);
            SqlSession session = sqlSessionFactory.openSession();
            try {
                User user = session.selectOne("User.selectUser", 1);
                System.out.println("user.getName=" + user.getName());
            } finally {
                session.close();
            }
        }
    }
    View Code

    整体关系如下:

    错误及处理:

    1、mysql驱动的URL中需要添加serverTimezone=UTC参数,否则可能会报时区错误;

      xml可能会把&符号作为特殊符号处理,需要用&amp代替,才能解读为&;

    参考:

    mybatis – MyBatis 3 | 简介  http://www.mybatis.org/mybatis-3/zh/index.html

    MyBitis(iBitis)系列随笔之一:MyBitis入门实例 - CSDN博客  http://blog.csdn.net/jefry_xdz/article/details/8755974 

    关于mysql-connector-java(JDBC驱动)的一些坑 - Silence.Sky - 博客园  https://www.cnblogs.com/skyshalo/p/7251378.html

  • 相关阅读:
    Linux升级内核教程(CentOS7)
    如何更新远程主机上的 Linux 内核
    CentOS在ssh下远程重装系统
    独立服务器远程重装Linux系统
    大公司都有哪些开源项目~~~阿里,百度,腾讯,360,新浪,网易,小米等
    win7旗舰版64位缺失tbb.dll文件
    一文看懂IC芯片生产流程:从设计到制造与封装
    Open WATCOM指南
    eComStation 1.2
    开源网络准入系统(open source Network Access Control system)
  • 原文地址:https://www.cnblogs.com/chinas/p/7813745.html
Copyright © 2020-2023  润新知