mybatis实现动态sql语句
【注意点】choose与if区别,只取第一个符合条件password并没有进入sql语句中//【请注意】增删改必须提交事务。。。。。。。。。。。。。。。。。在批量更新中需要将deconfig的配置文件url的尾部添加即url=jdbc:mysql://localhost:3306/mybatisplus?allowMultiQueries=true...
·
【注意点】
-
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");
}
}
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)