• Mybatis框架学习总结-Mybatis框架搭建和使用


    Mybatis介绍

    Mybatis是一个支持普通SQL查询,存储过程,和高级映射的优秀持久层框架。Mybatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装。Mybatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。

    Mybatis开发环境准备

    1.创建测试项目,普通的Java项目就可以,项目结构如下图所示:

    2.添加相应的jar包

    mybatis:mybatis-3.0.2.jar

    MySql驱动包:mysql-connector-java-5.1.44-bin.jar

    3.创建数据库和表,针对MySQL数据库,SQL脚本如下:

    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('a', 27);
    INSERT INTO users(NAME, age) VALUES('b', 27);

    使用Mybatis查询表中的数据

    1.添加Mybatis的配置文件conf.xml

    在src目录下创建一个conf.xml文件,如下图所示:

    conf.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://10.0.20.252:3306/mybatis" />
                    <property name="username" value="root" />
                    <property name="password" value="Free-Wi11" />
                </dataSource>
            </environment>
        </environments>
            <mappers>
                <mapper resource="com/fpc/Mapping/userMapper.xml"/>
            </mappers>
    </configuration>

    2.定义表中所对应的实体类:User

    User类的代码如下:

    package com.fpc.Entity;
    
    public class User {
        private int id;
        private String name;
        private int age;
        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 int getAge() {
            return age;
        }
        public void setAge(int age) {
            this.age = age;
        }
        
    }

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

    创建一个com.fpc.Mapping包,专门用于存放sql映射文件,在包中创建一个userMapper.xml文件,如下图所示:

    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,namespace的值习惯上设置成包名+sql映射文件名,这样就能够保证namespace的值是唯一的
    例如namespace="me.gacl.mapping.userMapper"就是me.gacl.mapping(包名)+userMapper(userMapper.xml文件去除后缀)
     -->
    <mapper namespace="com.fpc.Mapping.userMapper">
        <!-- 在select标签中编写查询的SQL语句, 设置select标签的id属性为getUser,id属性值必须是唯一的,不能够重复
        使用parameterType属性指明查询时使用的参数类型,resultType属性指明查询返回的结果集类型
        resultType="me.gacl.domain.User"就表示将查询结果封装成一个User类的对象返回
        User类就是users表所对应的实体类
        -->
        <!-- 
            根据id查询得到一个user对象
         -->
        <select id="getUser" parameterType="int" 
            resultType="com.fpc.Entity.User">
            select * from users where id=#{id}
        </select>
    </mapper>

    4.在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">
                <transactionManager type="JDBC" />
                <!-- 配置数据库连接信息 -->
                <dataSource type="POOLED">
                    <property name="driver" value="com.mysql.jdbc.Driver" />
                    <property name="url" value="jdbc:mysql://10.0.20.252:3306/mybatis" />
                    <property name="username" value="root" />
                    <property name="password" value="Free-Wi11" />
                </dataSource>
            </environment>
        </environments>
            <mappers>
                <mapper resource="com/fpc/Mapping/userMapper.xml"/>
            </mappers>
    </configuration>

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

    建立一个com.fpc.Test包,在该包下建立Test1类(包含main函数):

    Test1类中的内容:

    package com.fpc.Test;
    
    import java.io.IOException;
    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;
    import org.omg.CORBA.portable.InputStream;
    
    import com.fpc.Entity.User;
    
    public class Test1 {
        public static void main(String[] args) throws IOException {
            String resource = "conf.xml";
            
    //        InputStream is = Test1.class.getClassLoader().getResourceAsStream(resource);
            Reader reader = Resources.getResourceAsReader(resource);
            SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
            String statement = "me.gacl.mapping.userMapper.getUser";
            SqlSession session = sessionFactory.openSession();
            User user = (User) session.selectOne(statement,1);
            System.out.println("Id: " +user.getId() + " name : " + user.getName() + " age: " + user.getAge());
        }
    }

    执行的结果为:

  • 相关阅读:
    Meten Special Activities II
    Meten Special Activities II
    Meten Special Activities II
    Meten Special Activities II
    Meten Special Activities
    Meten Special Activities
    Meten Special Activities
    Meten Special Activities
    Meten Special Activities
    冒泡排序和选择排序
  • 原文地址:https://www.cnblogs.com/fangpengchengbupter/p/7832039.html
Copyright © 2020-2023  润新知