搭建MyBatis工作环境以及增删改查基本操作

数据库准备

创建一个数据库为mybatus-test,表为user

CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL,
  `age` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8;
insert  into `user`(`id`,`name`,`age`) values
(1,‘李三‘,18),(2,‘张三‘,25);

搭建环境

使用idea开发,所有考虑使用maven来管理项目,下面是pom.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.Bobi</groupId>
    <artifactId>Bobi</artifactId>
    <version>1.0-SNAPSHOT</version>
<dependencies>
    <!-- mybatis核心包 -->
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.3.0</version>
    </dependency>
    <!-- mysql驱动包 -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.29</version>
    </dependency>
    <!-- junit测试包 -->
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.11</version>
        <scope>test</scope>
    </dependency>
    <!-- 日志文件管理包 -->
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.12</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>1.7.12</version>
    </dependency>
</dependencies>
</project>

接着再加个日志输出环境配置文件,log4j.properties文件如下

各个元素得具体作用是什么,可以自行了解一下,这里就不多言啦

# Global logging configuration
log4j.rootLogger=DEBUG, stdout
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n 

为了体现所谓得不硬编码,所有加个数据库配置文件吧,sql.properties

根据自己得用户名和密码改一改

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis_test
jdbc.username=root
jdbc.password=123456

前面写了那么多配置文件,下面终于写mybatis的配置文件啦,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>
    <properties resource="mysql.properties"/>
    <settings>
        <!--全局性设置懒加载。如果设为‘false’,则所有相关联的都会被初始化加载,默认值为false-->
        <setting name="lazyLoadingEnabled" value="true"/>
        <!--当设置为‘true’的时候,懒加载的对象可能被任何懒属性全部加载。否则,每个属性都按需加载。默认值为true-->
        <setting name="aggressiveLazyLoading" value="false"/>
    </settings>
    <typeAliases>
        <!-- 其实就是将bean的替换成一个短的名字-->
        <typeAlias type="com.bobi.po.User" alias="User"/>
    </typeAliases>
    <!--对事务的管理和连接池的配置-->
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"></transactionManager>
            <dataSource type="POOLED"><!--POOLED:使用Mybatis自带的数据库连接池来管理数据库连接-->
                <property name="driver" value="${jdbc.driver}"/>
                <property name="url" value="${jdbc.url}"/>
                <property name="username" value="${jdbc.username}"/>
                <property name="password" value="${jdbc.password}"/>
            </dataSource>
        </environment>
    </environments>
    <!--mapping文件路径配置-->
    <mappers>
        <mapper resource="mapper/UserMapper.xml"/>
    </mappers>

</configuration>

以上的配置文件视人而异吧!大概就是这样子啦!!!!

编写sql映射配置文件

数据库中就一张表,现在就拿这张表来普通查询,模糊查询,增加,修改,删除操作

实体类User.java

package com.bobi.po;

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;
    }
}

映射文件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.bobi.po.User">
    <!--下列的id必须唯一的-->
    <insert id="insertUser" parameterType="com.bobi.po.User" useGeneratedKeys="true">
        INSERT INTO USER(name,age) VALUES(#{name},#{age})
    </insert>

    <update id="updateUsername" parameterType="com.bobi.po.User">
        UPDATE USER SET name=#{name} WHERE id=#{id}
    </update>

    <delete id="deleteUser" parameterType="java.lang.Integer">
        DELETE FROM USER WHERE id=#{id}
    </delete>

    <select id="findById" parameterType="int" resultType="com.bobi.po.User">
        SELECT * FROM User WHERE id=#{id}
    </select>

    <select id="findUserByUsername" parameterType="java.lang.String" resultType="com.bobi.po.User">
        SELECT * FROM USER WHERE name LIKE ‘%${value}%‘
    </select>

</mapper>

在这里值得注意一下的是平时可能会遇到如下的错误

如果有遇到如图中的问题,根据图中的提示修改就可以啦

最后一个就是编写w测试类了,在src\main\java中编写一个UserTest.java

package com.bobi.test;
import com.bobi.po.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;
import java.io.IOException;
import java.io.Reader;
import java.util.List;
public class UserTest {

    public static void main(String[] args) {
        String resoure="mybatis-config.xml";
        Reader reader=null;
        try {
            reader= Resources.getResourceAsReader(resoure);
            //创建会话工厂。传入MyBatis配置文件信息
            SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(reader);
            //通过会话工厂创建会话session
            SqlSession session=sqlSessionFactory.openSession();

            //通过id查询用户
            User user=session.selectOne("findById",2);
            System.out.println(user.getName());
            System.out.println(user.getAge());
            //通过模糊查询查含有“三”字的用户,并存于一个list列表中
            List<User> list=session.selectList("findUserByUsername","三");
            for (int i=0;i<list.size();i++){
                User user1=list.get(i);
                System.out.println(user1.getName());
                System.out.println(user1.getAge());
            }
            //新增一个用户
            User user2=new User();
            user2.setName("王五");
            user2.setAge(28);
            session.insert("insertUser",user2);
            //删除一个用户
            session.delete("deleteUser",6);
            //更改一个用户,将id为5的用名字改为孙俪
            User user3=new User();
            user3.setId(5);
            user3.setName("孙俪");
            session.update("updateUsername",user3);
            session.commit();
            session.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

OK,基本完成啦!下面是项目的GitHub的链接: [MybatisFirstDemo][1]

[1]: https://github.com/MyBobi/MyBatisFirstDemo

原文地址:https://www.cnblogs.com/Jackic/p/9434283.html

时间: 2024-08-25 15:35:31

搭建MyBatis工作环境以及增删改查基本操作的相关文章

idea+spring4+springmvc+mybatis+maven实现简单增删改查CRUD

在学习spring4+springmvc+mybatis的ssm框架,idea整合简单实现增删改查功能,在这里记录一下. 原文在这里:https://my.oschina.net/finchxu/blog/3007984 工作环境: Windows 10 jdk8(1.8) IntelliJ IDEA spring 4 和 springMVC MySQL 5.7 maven 3.3 mybatis 3.4 DBCP Tomcat 8.5 项目上传到了Github方便查看:https://gith

MyBatis学习--简单的增删改查

jdbc程序 在学习MyBatis的时候先简单了解下JDBC编程的方式,我们以一个简单的查询为例,使用JDBC编程,如下: 1 Public static void main(String[] args) { 2 Connection connection = null; 3 PreparedStatement preparedStatement = null; 4 ResultSet resultSet = null; 5 6 try { 7 //加载数据库驱动 8 Class.forName

mybatis学习之普通增删改查

mybatis下载地址:https://github.com/mybatis/mybatis-3/releases 选择你要下载的版本,这里我下载的3.4.2版 项目结构: 将mybatis中的所有jar包导入还要导入链接mysql数据库的jar包. 其中db.properties,mybatis-config.xml,log4j.properties是在src下. 在mysql中新建mybatis数据库,在数据库中新建表t_customer,表结构如下: 随后向其中随便插入几条数据. Cust

Mybatis实现单表增删改查操作

mybatis是对持久层进行了封装.mybatis文档地址:https://mybatis.org/mybatis-3/zh/index.html 下面实现单表的增删改查操作. 1.新建maven项目命名为mybatis.并在pom.xml中引入相关依赖 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0"

MyBatis学习之简单增删改查操作、MyBatis存储过程、MyBatis分页、MyBatis一对一、MyBatis一对多

一.用到的实体类如下: Student.java [html] view plaincopy package com.company.entity; import java.io.Serializable; import java.util.Date; public class Student implements Serializable{ private static final long serialVersionUID = 1L; private int id; private Stri

Mybatis实现部门表增删改查以及排序

废话不说,直接开门见山! 需要在WebContent下的lib下导入两个包 mybatis-3.2.5.jar ojdbc6.jar 1 package com.xdl.entity; 2 3 import java.io.Serializable; 4 5 public class Dept implements Serializable{ 6 private Integer deptno;//类型和名称与表保持一致 7 private String dname; 8 private Stri

MySQL 基础知识 增删改查基本操作

增删改查=CRUD 增 insertINSERT car VALUES('字符','name','brand','1990-02-02 00:00:00') 添加一条 INSERT car (`code`,`name`)VALUES('1','2') 单独添加 删除 DELETE 不常用DELETE FROM car 删除表的所有信息DELETE FROM car WHERE `Code`='字符' AND `Name`='name'DELETE FROM car WHERE `Code`='字

【Android基础篇】SQLite数据库的增删改查基本操作

一.概述 SQLite是Android系统的核心数据存储服务之一,它是一个轻型的嵌入式数据库,占用非常少的资源却能提供很好很快的数据存取服务,许多大型的需要数据存储的Android项目都有用到SQLite(也可以用于桌面应用程序). 下面介绍一下SQLite的创建数据库.表的操作,以及基本的增删改查操作. 二.基本操作API简介 在Android中,SQLiteDatabase类提供了SQLite的底层API,但在使用SQLite数据库时,我们往往不会直接操作SQLiteDatabase这个类,

用MyBatis进行数据库的增删改查

前提是MyBatis环境部署好了,参考地址: https://www.cnblogs.com/package-java/p/10316536.html 为了方便演示,我提前在数据库插入了数据方便查询 1. 创建新的数据库`tedu_ums`:      CREATE DATABASE tedu_ums;  2. 在新数据库中创建数据表`t_user`,表中至少包含id, username, password, age, phone, email这6个属性:       USE tedu_ums;