mybatis实现动态sql语句
生活随笔
收集整理的這篇文章主要介紹了
mybatis实现动态sql语句
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
【注意點】?
- 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=123456log4j.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%nMybatisConfig.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;@Beforepublic void init() throws IOException {is = Resources.getResourceAsStream("MybatisConfig.xml");builder = new SqlSessionFactoryBuilder();factory = builder.build(is);sqlSession = factory.openSession();}@Afterpublic void destory() throws IOException {sqlSession.close();is.close();}@Testpublic void findAll(){UserDao userDao = sqlSession.getMapper(UserDao.class);List<User> users = userDao.findAll();for (User user : users) {System.out.println(user);}}@Testpublic 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);}}@Testpublic 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);}}@Testpublic void UpdateUserBySet(){UserDao userDao = sqlSession.getMapper(UserDao.class);User user = new User("2","魔鬼","56345");userDao.updateUserBySet(user);//【請注意】增刪改必須提交事務。。。。。。。。。。。。。。。。。sqlSession.commit();System.out.println("success");}@Testpublic 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");}@Testpublic 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");}@Testpublic 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");}}?
?
?
總結
以上是生活随笔為你收集整理的mybatis实现动态sql语句的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于日志log4j
- 下一篇: extract local varial