xml模糊查询语句_2Mybatis学习笔记07:动态SQL语句(原创,转载请注明来源)
生活随笔
收集整理的這篇文章主要介紹了
xml模糊查询语句_2Mybatis学习笔记07:动态SQL语句(原创,转载请注明来源)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
開發環境:
硬件環境:Windows10+JDK 1.8; 軟件環境:Java+Eclipse+Mybatis+maven3.6+tomcat8.0+Postgresql 10.6; 用到的jar包: asm-3.3.1.jar cglib-2.2.2.jar commons-logging-1.1.1.jar javassist-3.17.1-GA.jar log4j-1.2.17.jar log4j-api-2.0-rc1.jar log4j-core-2.0-rc1.jar mybatis-3.2.7.jar mybatis-spring-1.2.1.jar mysql-connector-java-5.1.20.jar postgresql-42.2.5.jre7.jar slf4j-api-1.7.5.jar slf4j-log4j12-1.7.5.jar其他:
postgreSQL中已經存在一張表表名use,Windows環境下可通過命令行模式登錄,打開cmd輸入:psql -U postgrese; 按回車鍵,鍵入密碼(當初安裝postgreSQL設置的root密碼);項目結構:
1.1 配置文件
創建Mybatis.conf.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration><properties resource="db.properties"/><typeAliases><package name="com.ironxi.entity"/> </typeAliases><environments default="development"><environment id="development"><transactionManager type="JDBC" /><dataSource type="POOLED"><property name="driver" value="${driver}"/><property name="url" value="${url}" /><property name="username" value="${username}" /><property name="password" value="${password}" /></dataSource></environment></environments><mappers><mapper resource="com/ironxi/entity/TeacherMapper.xml" /></mappers> </configuration>設置數據庫關管理文件:
db.properties
driver=org.postgresql.Driver url=jdbc:postgresql://localhost:5432/postgres username=postgres password=Your.3341.2 設置MybtisUtils類(編寫sqlsessionfactory,sqlsession)
package com.ironxi.util;import java.io.IOException; import java.io.InputStream;import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder;public class MybatisUtil {/**SqlSessionFactory* 通過配置文件創建SqlSessionFactory,是一個SqlSession工廠類*/public static SqlSessionFactory getSqlSessionFactory() throws IOException {String resource = "mybatis.conf.xml";InputStream inputStream = Resources.getResourceAsStream(resource);SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);return sqlSessionFactory;}/**SqlSession* 通過id找到對應的sql語句并執行它*/public static SqlSession getSession() throws IOException {SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();return sqlSessionFactory.openSession();} }1.3 設置Student類,Teacher類
設置User類
package com.ironxi.entity;public class User {private int id;private String name;private String password;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 String getPassword() {return password;}public void setPassword(String password) {this.password = password;}@Overridepublic String toString() {return "User [id=" + id + ", name=" + name + ", password=" + password + "]";}}1.4 設置Mapper.xml文件
UserMapper.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.ironxi.entity.UserMapper"> <!-- 結果映射不能返回成一個類型時用resultTypt --><select id="getUserByCondition" parameterType="Map" resultType="User">select * from use<where><!-- 利用sql語句的傳參函數模糊匹配 --><if test="name!=null">name like CONCAT('%',#{name},'%')</if></where></select> </mapper>1.5 創建查詢方法
UserDao.java
package com.ironxi.dao;import java.io.IOException; import java.util.List; import java.util.Map;import org.apache.ibatis.session.SqlSession;import com.ironxi.entity.User; import com.ironxi.util.MybatisUtil;public class UserDao {/**search all* @throws IOException */public List<User> getAll(Map<String,Object> map) throws IOException{SqlSession session = MybatisUtil.getSession();List<User> list= session.selectList("com.ironxi.entity.UserMapper.getUserByCondition",map);session.close();return list;} }1.6 編寫測試文件
package com.ironxi.test;import java.io.IOException; import java.util.HashMap; import java.util.List; import java.util.Map;import com.ironxi.dao.UserDao; import com.ironxi.entity.User;public class Test {public static void main(String[] args) throws IOException {/** Select */UserDao userDao = new UserDao();Map<String,Object> map=new HashMap<String,Object>();map.put("name", "四");List<User> list=userDao.getAll(map);for(User u:list){System.out.println(u);}System.out.println("************");} }輸出結果:
log4j:WARN No appenders could be found for logger (org.apache.ibatis.logging.LogFactory). log4j:WARN Please initialize the log4j system properly. log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info. User [id=23, name=四種, password=123455] User [id=24, name=四狗, password=123455] ************1.7 動態SQL語句
引入了<where></where>條件語句,同時在里面寫if條件,若有多個if則除第一條語句外其余都需加and;
<where><!-- 利用sql語句的傳參函數模糊匹配 --><if test="name!=null">name like CONCAT('%',#{name},'%')</if> </where> 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的xml模糊查询语句_2Mybatis学习笔记07:动态SQL语句(原创,转载请注明来源)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 信用卡冻结已还清不给解冻怎么办?这里有几
- 下一篇: 工行信用卡封卡前兆?这些蛛丝马迹不要错过