zoukankan      html  css  js  c++  java
  • Mybatis学习随笔

    学习Mybatis路径(适合有java基础和mysql基础的小伙伴)

      1.把项目搭建起来,跑一跑感受一下

      2.测试基本映射

      3.测试高级映射

      4.测试动态sql

      5.学习懒加载与缓存

      6.与spring整合

    一、项目搭建

      项目主要以学习测试为主,步骤如下:

      1.新建一个Java工程,起名mybatis。

      2.在项目目录下新建一个文件夹lib,存放jar包,将jar包拷到lib下,右击 build path -> add to build path。jar包下载

      3.新建一个sourceforder,起名config,里面放两个配置文件。完成后项目目录如图:

      4.数据库,像我一样的小白最好用可视化工具,操作方便。在数据库中建个数据库起名ssm,然后建个表起名user。完全可以不用这么多字段。如图:

      5.编写配置文件。在sourceforder 下新建一个mybatis.xml,这是mybatis的全局配置文件。代码如下:

      

    <?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://localhost:3306/ssm" />
                    <property name="username" value="root" />
                    <property name="password" value="root" />
                </dataSource>
            </environment>
        </environments>
        
        <mappers>
            <mapper resource="mappers/UserMapper.xml"/>
        </mappers>
    </configuration>

      这里的用户名和密码要改成自己的。然后新建一个package,起名mappers,存放数据库与实体的映射。然后在mappers里新建一个xml文件起名UserMapper,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="com.zhx.mapper.UserMapper">
            <insert id="addUser" parameterType="com.zhx.pojo.User">
            INSERT INTO user(account,name,pwd,sex,birthday)
            VALUES(#{account},#{name},#{pwd},#{sex},#{birthday})
        </insert>    
    </mapper>

      在UserMapper里 写了一条insert语句,向数据库插入一条数据,注意:namespace命名空间指向自己编写的接口(注意路径),我现在还没有写:),parameterType是传入的参数,指向了实体类,表名传入一个user对象。<insert>包裹的是一条sql语句,注意的是values 中#{此处是变量名,与user中变量名称保持一致}。

      6.编写java代码

      新建package com.zhx.mapper,新建接口interface,UserMapper。UserMapper代码如下:

    package com.zhx.mapper;
    import com.zhx.pojo.User;
    
    public interface UserMapper {
        public int addUser(User user);
    }

      新建package com.zhx.pojo,新建类,User。User代码如下:

      

    package com.zhx.pojo;
    
    public class User {
        
        private int id;
        private String account;
        private String name;
        private String pwd;
        private String sex;
        private String birthday;
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public int getId() {
            return id;
        }
        public void setId(int id) {
            this.id = id;
        }
        public String getAccount() {
            return account;
        }
        public void setAccount(String account) {
            this.account = account;
        }
        public String getPwd() {
            return pwd;
        }
        public void setPwd(String pwd) {
            this.pwd = pwd;
        }
        public String getSex() {
            return sex;
        }
        public void setSex(String sex) {
            this.sex = sex;
        }
        public String getBirthday() {
            return birthday;
        }
        public void setBirthday(String birthday) {
            this.birthday = birthday;
        }
        public User() {
            super();
        }
        public User( String account,String name, String pwd, String sex, String birthday) {
            super();
            this.account = account;
            this.name = name;
            this.pwd = pwd;
            this.sex = sex;
            this.birthday = birthday;
        }
        
    }

      7.编写测试类

      前面准备工作完成了,下面就是测试了,加载配置文件,然后从spring容器中拿到bean,然后执行方法addUser(User user); 在Navicat中刷新查看结果,test代码如下:

    public class Test2 {
        public static void main(String[] args) {
            ApplicationContext ctx
                =new ClassPathXmlApplicationContext("ApplicationContext.xml");
            UserMapper um= ctx.getBean(UserMapper.class);
            int i = um.addUser(new User("a", "a", "a", "a", "a"));
            System.out.println(i);
        }
    }
    View Code

      8.报错

      在初次运行过程中报一些看不懂的错误,因为对它不熟悉,这是很正常的,仔细分析一下提示信息,贴到网上找找解决方法,或者给我留言,都是OK的。祝大家成功~

      

  • 相关阅读:
    redis php 实例
    redis 常用操作命令
    Django2.2集成xadmin管理后台所遇到的错误集锦,解决填坑
    软件测试理论知识点
    网络七层协议模型、TCP/IP四层模型
    UDP和TCP有什么区别
    HTTP与HTTPS的区别
    mysql的主键和索引
    mysql 事务未提交导致死锁 Lock wait timeout exceeded; try restarting transaction 解决办法
    chmod命令详细用法
  • 原文地址:https://www.cnblogs.com/ZouHongxue/p/7700796.html
Copyright © 2011-2022 走看看