zoukankan      html  css  js  c++  java
  • Mybatis笔记(一)-----Mybatis基础xml配置文件解释

    1、预先的配置

    (1)创建一个数据库(MySQL)mybatis和一张user表,脚本如下:

    #创建mybatis数据库
    create database mybatis;
    #使用数据库
    use mybatis;
    #创建表,有id, name, age
    create table user (
      ID INT(11) PRIMARY KEY AUTO_INCREMENT,
      NAME VARCHAR(18) DEFAULT NULL,
      AGE INT(11) DEFAULT NULL
    )

    (2)基本的PO(持久化对象)

    package com.test.mybatistest;

    public
    class User { private int ID; private String name; private int age; public User(int id, String name, int age){ this.ID = id; this.name = name; this.age = age; } public void setID(int ID) { this.ID = ID; } public void setName(String name) { this.name = name; } public void setAge(int age) { this.age = age; } public int getID() { return ID; } public String getName() { return name; } public int getAge() { return age; } }

    2、xml配置文件

    (1)User.xml (位置:直接在src下)

    <?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="com.test.springtest.User">
        <select id="GetUserByID" parameterType="int" resultType="com.test.springtest.dao.MUser">
            select * from `student` where id = #{id}
        </select>
    
        <insert
                id="saveUser" parameterType="com.test.springtest.User"
                useGeneratedKeys="true">
            insert into student(NAME,AGE) values (#{name},#{age})
        </insert>
    </mapper>

    具体解释:

    <mapper namespace="com.test.springtest.User"

             为这个mapper指定一个唯一的namespace,它习惯上设置为:“包名+sql映射文件名”,这样可以保值名的唯一。

    <select id="GetUserByID" parameterType="int" resultType="com.test.mybatistest.User">

           id:这个select语句的id
           parameterType:指定查询是传入的参数类型
           resultType:即返回结果集的类型,这理指定为User类型

    select * from `student` where id = #{id}   

           一条select语句

    useGeneratedKeys="true"  

           使用数据库的自动增长策略

    (2)mybatis-config.xml (位置:直接在src下)

    <?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>
        <!--环境配置,连接的数据库,这里使用的是MySQL-->
        <environments default="mysql">
            <environment id="mysql">
                <!--指定事务管理的类型,这里简单使用Java的JDBC的提交和回滚设置-->
                <transactionManager type="JDBC"></transactionManager>
                <!--dataSource 指连接源配置,POOLED是JDBC连接对象的数据源连接池的实现-->
                <dataSource type="POOLED">
                    <property name="driver" value="com.mysql.jdbc.Driver"></property>
                    <property name="url" value="jdbc:mysql://127.0.0.1:3306/mybbs"></property>
                    <property name="username" value="root"></property>
                    <property name="password" value="root"></property>
                </dataSource>
            </environment>
        </environments>
        <mappers>
    <!--这是告诉Mybatis区哪找持久化类的映射文件,对于在src下的文件直接写文件名,
    如果在某包下,则要写明路径,如:com/mybatistest/config/User.xml-->
    <mapper resource="User.xml"></mapper> </mappers> </configuration>

     Mybatis的配置文件默认命名为mybatis-config.xml,程序运行前需要加载这个文件;

    第一行是XML声明,指定字符集;

    <configuration>Mybatis配置文件的根元素为

    <environment>:用来配置Mybatis的环境,即连接的数据库。

    <transationManager>:配置Mybatis的事务管理

    <dataSource>:数据源,Mybatis推荐使用数据源(维持着一个连接池,而不用每次连接都开启一个连接)来管理数据库连接。而dataSource下的属性相信你已经懂了(如果你学过JDBC的配置)

    3、运行测试

    package com.test.springtest.test;
    public class Test{
    
        public static void main(String[] args){
            //读取配置文件
            InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
            //初始化mybatis,创建SqlSessionFactory类实例
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
            //创建Session实例
            SqlSession session = sqlSessionFactory.openSession();
            User user = new User(6, "张三", 33);
            //插入数据
            session.insert("com.test.springtest.User.saveUser",user);
            //提交事务
            session.commit();
            //关闭Session
            session.close();
        }
    }

    说明:

             程序先读取配置文件,然后通过SqlSession对象来操作持久化对象。

            为了使用Mybatis进行持久化操作,可以把上述程序总结如下操作步骤:

            1)编写持久化类(e.g. User)和其持久化操作的Mapper.xml(e.g. User.xml),并在mapper.xml中定义SQL语句

            2)获取SqlSessionFactory

            3)获取SqlSession

            4)用面向对象的方式操作数据库(session.insert()、session.update()、session.select()。。。。)

            5)提交事务,关闭SqlSession

  • 相关阅读:
    常见数据库设计
    团队建设工具
    Java的redis控制台-Jedis
    java常用类总结
    sql可重复执行语句例子
    让simplejson支持datetime类型的序列化
    Python模块的导入以及软件开发规范
    boto3--通过Python的SDK连接aws
    HTML目录:
    Python目录:
  • 原文地址:https://www.cnblogs.com/zhouricong/p/9483099.html
Copyright © 2011-2022 走看看