zoukankan      html  css  js  c++  java
  • 学习大神笔记之 “MyBatis学习总结(一)”

    1.准备工作

        软件:eclipse、 mysql 、navicat for mysql

        包:mybatis-3.1.1.jar   mysql-connector-java-5.1.7-bin.jar

     

    2.创建项目

       web项目在eclipse中是指动态web项目,即Dynamic web project.

       源码放在src文件夹。

       jar包放在自建的lib文件夹下然后build path到当前项目中。

     

    3.创建数据库和表

       打开 MYSQL command line client,输入数据库密码回车,成功后创建数据库数据表。注意每句结尾都要有“;”,然后回车,你会知道这条语句正确还是错误。

       在此引入大神语句:

     create database mybatis;
     use mybatis;
     CREATE TABLE users(id INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(20), age INT);
     INSERT INTO users(NAME, age) VALUES('孤傲苍狼', 27);
     INSERT INTO users(NAME, age) VALUES('白虎神皇', 27);

        创建的数据库叫mybatis ,数据表叫users,users表中有两条数据。

        下一步就是利用Navicat for mysql对数据库进行管理。

       

       

         连接名任意写,由于建立的为本地数据库,所以主机名为 localhost(意思为本地服务器),端口为mysql默认端口3306(改不改都可以),用户名和密码为mysql的用户名密码,也就是你打开mysql时要输入的用户名密码。

        此时,可以用 nacivat for mysql 管理建好的数据库数据表了。

        在此做一下概念区分(知识来源于流浪的虾壳博客的《连接数据库localhost和127.0.0.1的区别》): 

          一.localhost 和 127.0.0.1

             localhost也叫local ,正确解释为:本地服务器

            127.0.0.1在系统的正确解释是:本机地址(本机服务器)

             localhot(local)是不经网卡传输!这点很重要,它不受网络防火墙和网卡相关的的限制。访问localhost也不会解析成ip,不会占用网卡、网络资源。

             127.0.0.1是需要通过网卡传输,依赖网卡,并受到网络防火墙和网卡相关的限制。

              这就是为什么有时候用localhost可以访问,但用127.0.0.1就不可以的情况。所以还是尽量用localhost吧.

         二. 数据库默认端口号

                 SQL Server 1433    

                  Oracle  1521

                  MySQL  3306

     

    4.建立MyBatis 查询

       需要建立 1、Mybatis的配置文件conf.xml

                    2、users表所对应的实体类

                    3、定义操作users表的sql映射文件userMapper.xml

                    4、在conf.xml文件中注册userMapper.xml文件

                    5、编写测试代码:执行定义的select语句

        4.1 conf.xml

        按照大神代码敲的,已经注册了userMapper.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">
              <!--JDBC为java提供的管理数据库接口-->
              <transactionManager type="JDBC"/>
              <!-- 配置数据库连接信息 -->
              <!--POOLED:使用Mybatis自带的数据库连接池来管理数据库连接 -->
              <dataSource type="POOLED">
                 <!--driver为数据库驱动,固定的 -->
                 <property name="driver" value="com.mysql.jdbc.Driver" />
                 <!-- “jdbc:mysql://IP:端口号/数据库(你建的那个) -->
                 <property name="url" value="jdbc:mysql://localhost:3306/mybatis" />
                 <property name="username" value="root" />
                 <property name="password" value="liyangkun123" />
              </dataSource>
           </environment>
       </environments>
      <mappers>
         <!-- 注册userMapper.xml文件,userMapper.xml位于me.gacl.mapping这个包下,所以resource写成me/gacl/mapping/userMapper.xml-->
         <mapper resource = "me/gacl/mapping/userMapper.xml" ></mapper>
      </mappers>
       
    </configuration>

       POOLED:使用Mybatis自带的数据库连接池来管理数据库连接 

       UNPOOLED:不使用任何数据库连接池来管理数据库连接

        JNDI:jndi形式使用数据库连接、主要用于项目正常使用的时候

        4.2 创建users表实体类

            很简单,不赘述。

        4.3 测试代码

          此部分大神注释很明白,参见大神代码即可,引用如下。

    package me.gacl.test;
    
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.Reader;
    import me.gacl.domain.User;
    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 Test1 {
    
        public static void main(String[] args) throws IOException {
            //mybatis的配置文件
            String resource = "conf.xml";
            //使用类加载器加载mybatis的配置文件(它也加载关联的映射文件)
            InputStream is = Test1.class.getClassLoader().getResourceAsStream(resource);(class里有getResourceAsStream方法)
            //构建sqlSession的工厂
            SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is);//创建能执行映射文件中sql的sqlSession
            SqlSession session = sessionFactory.openSession();
            /**
             * 映射sql的标识字符串,
             * me.gacl.mapping.userMapper是userMapper.xml文件中mapper标签的namespace属性的值,
             * getUser是select标签的id属性值,通过select标签的id属性值就可以找到要执行的SQL
             */
            String statement = "me.gacl.mapping.userMapper.getUser";//映射sql的标识字符串
            //执行查询返回一个唯一user对象的sql
            User user = session.selectOne(statement, 1);
            System.out.println(user);
        }
    }

        最后在Test1上右击,选择 run as ---> java application 运行

        结果如下:

            

        

        后续还将跟着大神学习下去。

        


        


     

  • 相关阅读:
    linux消息队列相关操作
    linux下删除3分钟之前指定文件夹下的指定类型文件
    centos6.5安装gmime-2.6
    centos6.5安装filezilla
    posix 正则库程序
    nginx正向vs反向代理
    AbstractQueuedSynchronizer 原理分析
    JAVA NIO详解
    java NIO原理及实例
    Thread类详解
  • 原文地址:https://www.cnblogs.com/kunsunshine/p/6245546.html
Copyright © 2011-2022 走看看