【注意点】 

  • choose与if区别,只取第一个符合条件password并没有进入sql语句中
  • //【请注意】增删改必须提交事务。。。。。。。。。。。。。。。。。
  • 在批量更新中需要将deconfig的配置文件url的尾部添加
    即url=jdbc:mysql://localhost:3306/mybatisplus?allowMultiQueries=true

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.henu</groupId>
    <artifactId>mybatis02_activeSql</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>

    <dependencies>

    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.4.5</version>
    </dependency>

    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.6</version>
    </dependency>

    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.10</version>
    </dependency>

    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.12</version>
    </dependency>

    </dependencies>

</project>

dbconfig.properties

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybatisplus?allowMultiQueries=true
name=root
password=123456

log4j.properties

# Global logging configuration
log4j.rootLogger=debug, stdout
# MyBatis logging configuration...
log4j.logger.cn.wolfcode.mybatis=TRACE
# 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

MybatisConfig.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="dbconfig.properties"></properties>

    <typeAliases>
        <typeAlias type="com.henu.bean.User" alias="User" />
        <typeAlias type="com.henu.dao.UserDao" alias="UserDao" />
    </typeAliases>

    <environments default="mysql">
        <environment id="mysql">
            <transactionManager type="JDBC"></transactionManager>
            <dataSource type="POOLED">

                <property name="driver" value="${driver}"></property>
                <property name="url" value="${url}"></property>
                <property name="username" value="${name}"></property>
                <property name="password" value="${password}"></property>

            </dataSource>
        </environment>
    </environments>

    <mappers>
        <mapper resource="com/henu/dao/UserDao.xml"></mapper>
    </mappers>

</configuration>

User

UserDao

package com.henu.dao;

import com.henu.bean.User;

import java.util.List;

/**
 * @author George
 * @description
 **/
public interface UserDao {

    /**
     * 查询全部
     * @return
     */
    List<User> findAll();

    /**
     * 根据不同条件查询
     * @return
     */
    List<User> findUserByCondition(User user);

    /**
     * 根据不同条件查询
     * @return
     */
    List<User> findUserByChoose(User user);

    /**
     * 更新用户
     * @param user
     * @return
     */
    int updateUserBySet(User user);

    /**
     * 批量删除
     * @param list
     * @return
     */
    int deleteUserByforeach(List<Integer> list);

    /**
     * 批量插入
     * @param list
     * @return
     */
    int insertUserByForeach(List<User> list);

    /**
     * 批量更新
     * @param list
     * @return
     */
    int updateUserByForeach(List<User> list);
}

UserDao.xml

MybatisTest

package com.henu.test;

import com.henu.bean.User;
import com.henu.dao.UserDao;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.ResultHandler;
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 java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @author George
 * @description
 **/
public class MybatisTest {

    private static InputStream is;
    private static SqlSessionFactoryBuilder builder;
    private static SqlSessionFactory factory;
    private static SqlSession sqlSession;

    @Before
    public void init() throws IOException {
        is = Resources.getResourceAsStream("MybatisConfig.xml");
        builder = new SqlSessionFactoryBuilder();
        factory = builder.build(is);
        sqlSession = factory.openSession();
    }

    @After
    public void destory() throws IOException {
        sqlSession.close();
        is.close();
    }

    @Test
    public void findAll(){
        UserDao userDao = sqlSession.getMapper(UserDao.class);
        List<User> users = userDao.findAll();
        for (User user : users) {
            System.out.println(user);
        }
    }

    @Test
    public void findUserByCondition(){
        UserDao userDao = sqlSession.getMapper(UserDao.class);
        User user = new User();
        user.setUsername("乔治");
        user.setPassword("123456");
        List<User> users = userDao.findUserByCondition(user);
        for (User u : users) {
            System.out.println(u);
        }
    }


    @Test
    public void findUserByChoose(){
        UserDao userDao = sqlSession.getMapper(UserDao.class);
        User user = new User();
        user.setUsername("乔治");
        //select * from user where 1 = 1 and username=?
        /*
        choose与if区别,只取第一个符合条件password并没有进入sql语句中
         */
        user.setPassword("123456");
        List<User> users = userDao.findUserByChoose(user);
        for (User u : users) {
            System.out.println(u);
        }
    }


    @Test
    public void UpdateUserBySet(){
        UserDao userDao = sqlSession.getMapper(UserDao.class);
        User user = new User("2","魔鬼","56345");
        userDao.updateUserBySet(user);
        //【请注意】增删改必须提交事务。。。。。。。。。。。。。。。。。
        sqlSession.commit();
        System.out.println("success");
    }

    @Test
    public void deleteUserByforeach(){
        UserDao userDao = sqlSession.getMapper(UserDao.class);
        List<Integer> list = new ArrayList<Integer>();
        list.add(3);
        list.add(4);
        userDao.deleteUserByforeach(list);
        //【请注意】增删改必须提交事务。。。。。。。。。。。。。。。。。
        sqlSession.commit();
        System.out.println("success");
    }


    @Test
    public void insertUserByForeach(){
        UserDao userDao = sqlSession.getMapper(UserDao.class);
        List<User> list = new ArrayList<User>();
        list.add(new User("10","贝弗利","1224"));
        list.add(new User("11","黑贝","1224"));
        userDao.insertUserByForeach(list);
        //【请注意】增删改必须提交事务。。。。。。。。。。。。。。。。。
        sqlSession.commit();
        System.out.println("success");
    }

    @Test
    public void updateUserByForeach(){
        UserDao userDao = sqlSession.getMapper(UserDao.class);
        List<User> list = new ArrayList<User>();
        list.add(new User("10","ooxx","56345"));
        list.add(new User("11","xxoo","56345"));
        userDao.updateUserByForeach(list);
        sqlSession.commit();
        System.out.println("success");
    }

}

 

 

 

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐