使用Maven简单配置Mybatis

1.新建一个Maven项目

2. 在pom.xml中进行配置,在pom.xml中配置的时候,需要网速好,当网速不是很好的时候,是加载不出Jar包的。

代码如下所示.

<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/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.whl</groupId>
    <artifactId>MyBatis01</artifactId>
    <packaging>war</packaging>
    <version>0.0.1-SNAPSHOT</version>
    <name>MyBatis01 Maven Webapp</name>
    <url>http://maven.apache.org</url>
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.4</version>
        </dependency>
    </dependencies>

    <build>
        <finalName>MyBatis01</finalName>
    </build>
</project>

<dependencies>的文件配置参考http://mvnrepository.com/

如果不知如何添加,可在此链接中输入相应jar包的名称,然后选择正确的版本,就会有示例。

3.手动导入MySQL的jar包,因为网速不好,下载不了,故采用手动导入,然后右键该jar包,build path。

4.在resources下,新建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>
    <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/test" />
                <property name="username" value="root" />
                <property name="password" value="123456" />
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="com/whl/mybatis/userMapper.xml" />
    </mappers>
</configuration>

mappers中的映射要与下一步操作对应。

5.在Java文件夹下建立相应的包,并在此写相应的bean类,如下

package com.whl.mybatis;

public class User {
    private int id;
    private String username;
    private String userpass;
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getUserpass() {
        return userpass;
    }
    public void setUserpass(String userpass) {
        this.userpass = userpass;
    }
    @Override
    public String toString() {
        return "User [id=" + id + ", username=" + username + ", userpass=" + userpass + "]";
    }
    public User(int id, String username, String userpass) {
        super();
        this.id = id;
        this.username = username;
        this.userpass = userpass;
    }
    public User() {
        super();
    }

}

6.在Java文件下新建相关的包,新建一个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="userMapper">

    <!-- id是唯一标志符 -->
    <!-- parameterType参数类型,指明插入时使用的参数类型 -->
    <!-- useGeneratedKeys="true", 表示数据库的自动增长策略  -->
    <insert id="save" parameterType="com.whl.mybatis.User"
        useGeneratedKeys="true">
        insert into user(username, password) values(#{username}, #{password})
    </insert>

    <delete id="deleteById" parameterType="int">
        delete from user where uid = #{value}
    </delete>

    <delete id="deleteByIds">
        delete from user where uid in
        <foreach collection="list" item="uid" open="(" close=")" separator=",">
            #{uid}
        </foreach>
    </delete>

    <select id="likeByName" resultType="com.whl.mybatis.User" parameterType="string">
        select * from user where username like ‘%${value}%‘
    </select>

    <select id="findAll" resultType="com.whl.mybatis.User">
        select uid, username, password from user
    </select>

    <select id="findById" parameterType="int" resultType="com.whl.mybatis.User">
        select * from user where uid = #{value}
    </select>

    <update id="updateById" parameterType="com.whl.mybatis.User">
        update user set username=#{username}, password=#{password} where uid = #{uid}
    </update>

    <!--
        update user set username = case uid
            when
                #{u.uid} then #{u.username}
            end
            where uid in (...)
     -->
    <update id="updateUserBatch" parameterType="list">
        update user set username = CASE  uid
        <foreach collection="list" item = "u" separator=" ">
            when #{u.uid} then #{u.username}
        </foreach>
        end
        where uid in
        <foreach collection="list" item="user" open="(" separator="," close=")">
            #{user.uid}
        </foreach>
    </update>
</mapper>

7.测试:代码如下

package com.whl.mybatis.test;

import java.io.InputStream;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.ExecutorType;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import com.whl.mybatis.User;

public class TestMyBatis {

    private SqlSession s = null;
    private SqlSessionFactory ssf = null;

    @Before
    public void init(){

        String resourcesStr = "mybatis-config.xml";
        try {
            InputStream is = Resources.getResourceAsStream(resourcesStr);

            ssf = new SqlSessionFactoryBuilder().build(is);

            s = ssf.openSession();
        }catch (Exception e) {
            e.printStackTrace();
        }
    }

    @Test
    public void testDeleteByIds(){
        List<Integer> list = new ArrayList<>();

        Collections.addAll(list, 1, 2, 3, 36, 39);

        //    以批量的处理方式打开数据库连接
        ssf.openSession(ExecutorType.BATCH, false);

        int result = s.delete("myBatis.deleteByIds", list);

        s.commit();

        System.out.println("result = " + result);
    }

    @Test
    public void testDeleteById(){
        int result = s.delete("myBatis.deleteByIds.deleteById", 38);
        s.commit();
        System.out.println("result = " + result);
    }

    @Test
    public void testSelectByLike(){
        String name = "user";
        List<User> list = s.selectList("myBatis.deleteByIds.likeByName", name);
        for (User u : list) {
            System.out.println(u);
        }
    }

    @Test
    public void testUpdateBatch(){

        List<User> users = new ArrayList<>();

        User u = null;
        for(int i = 0; i < 3; i++){
            u = new User(20+i, "name" + i, "pass" + i);
            System.out.println(u);
            users.add(u);
        }

        int result = s.update("myBatis.deleteByIds.updateUserBatch", users);

        s.commit();

        System.out.println("result = " + result);
    }

    @Test
    public void testUpdateUserById(){

        User user = new User(38, "user38", "pass38");

        int result = s.update("myBatis.deleteByIds.updateById", user);

        System.out.println("result = " + result);
    }

    @Test
    public void testFindById(){
        User u = s.selectOne("myBatis.deleteByIds.findById", 32);

        System.out.println(u);
    }

    @Test
    public void testFindAll(){
        List<User> list = s.selectList("myBatis.deleteByIds.findAll");
        for (User u : list) {
            System.out.println(u);
        }
    }

    @Test
    public void testAdd(){
        try {

            User user = new User();

            user.setUsername("abc");
            user.setPassword("123");

            s.insert("myBatis.deleteByIds.save", user);

            s.commit();
            s.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    @After
    public void destrory(){
        if(s != null){
            s.close();
            s = null;
        }
    }
}

时间: 2024-12-06 18:17:24

使用Maven简单配置Mybatis的相关文章

Maven 简单配置gpg

1. 下载maven到指定目录,指定对应的gpg的执行命令所需要的属性.这里比如下载解压后的maven目录是: C:\maven-apache-3.3.2 ,那么配置文件目录是: C:\maven-apache-3.3.2\conf\settings.xml <profiles> <profile> <id>ossrh</id> <activation> <activeByDefault>true</activeByDefaul

学习myBatis - 如何配置myBatis

这篇文章主要学习如何配置myBatis. 要学习新东西要讲究方法,我觉得要从三个层面去理解它:它是什么(what),为什么要学它(why),怎么用它(how).有了学习方法学习的效率才高. 1.myBatis是什么(what) myBatis的官方用户指南上面是这样写的:MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架.MyBatis 消除 了几乎所有的 JDBC 代码和参数的手工设置以及结果集的检索.MyBatis 使用简单的 XML 或注解用于配置和原始映射,将接

mybatis generator在eclipse上的配置与使用(在maven上配置方法)

mybatis generator在eclipse上的配置主要有在以下几个文件上需要进行修改内容:pom.xml,以及配置文件generatorConfig.xml的创建与编写. 1.在pom.xml上添加 在pom.xml上添加以下配置信息: <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId&

Spring+Mybatis+Maven 整合配置

1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans default-autowire="byName" 3 xmlns="http://www.springframework.org/schema/beans" 4 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 5 xsi:sche

使用Eclipse,Maven简单搭建Spring+MyBatis

1.新建一个Maven Project 使用Eclipse自带的Maven插件,自动创建一个基于Maven的Web工程:(前提是开发环境一定要配置好Maven) 选择archetype为maven-archetype-webapp: 设置: GroupId:com.study(正式项目为公司网址倒写) ArtifactId:SMPro(项目名称,[模块名称]) 2.修复jsp页面报错 jsp页面报错,因为在构建路径中没有javax.servlet.http.HttpServlet,在pom.xm

Mybatis缓存(1)--------系统缓存及简单配置介绍

前言 Mybatis的缓存主要有两种: 系统缓存,也就是我们一级缓存与二级缓存: 自定义的缓存,比如Redis.Enhance等,需要额外的单独配置与实现,具体日后主要学习介绍. 在这里主要记录系统缓存的一些简单概念, 并没有涉及原理.其中会涉及Mybatis的相关配置以及生命周期等. 主要参考资料:<深入浅出Mybatis基础原理与实战>,http://www.mybatis.org/mybatis-3/zh/index.html 1.Mybatis简单配置介绍 本文介绍的是基于XML的配置

SpringBoot 中 Maven 简单的配置

maven 的配置,该配置可以直接部署到linux服务器: <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.

maven工程配置pom.xml实现mybatis的访问数据库操作

pom.xml配置: pom.xml 这个配置还有不足请在下方给出建议 I:  我这里测试三个 : 分别是有@的 DemoMapper(接口): IDemoMapper.interface package com.test; import com.pojo.Demo; import org.apache.ibatis.annotations.Select; import java.util.List; public interface DemoMapper { /** * 查询数量 count(

Maven搭建SpringMVC+Mybatis项目详解【转】

前言 最近比较闲,复习搭建一下项目,这次主要使用Spring+SpringMVC+Mybatis.项目持久层使用Mybatis3,控制层使用SpringMVC4.1,使用Spring4.1管理控制器,数据库连接池使用druid数据源,该项数据库暂使用MySQL. 1. 数据库表结构以及maven项目结构 数据表非常的简单(不是重点),如下: 创建maven项目创建Maven Project时,将Filter选择为org.apache.maven.archetypes.填写完相关项目坐标信息后项目