日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

xml模糊查询语句_2Mybatis学习笔记07:动态SQL语句(原创,转载请注明来源)

發(fā)布時間:2023/12/13 数据库 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 xml模糊查询语句_2Mybatis学习笔记07:动态SQL语句(原创,转载请注明来源) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

開發(fā)環(huán)境:

硬件環(huán)境:Windows10+JDK 1.8; 軟件環(huán)境: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中已經(jīng)存在一張表表名use,Windows環(huán)境下可通過命令行模式登錄,打開cmd輸入:psql -U postgrese; 按回車鍵,鍵入密碼(當(dāng)初安裝postgreSQL設(shè)置的root密碼);

項(xiàng)目結(jié)構(gòu):

1.1 配置文件

創(chuàng)建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>

設(shè)置數(shù)據(jù)庫關(guān)管理文件:

db.properties

driver=org.postgresql.Driver url=jdbc:postgresql://localhost:5432/postgres username=postgres password=Your.334

1.2 設(shè)置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* 通過配置文件創(chuàng)建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找到對應(yīng)的sql語句并執(zhí)行它*/public static SqlSession getSession() throws IOException {SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();return sqlSessionFactory.openSession();} }

1.3 設(shè)置Student類,Teacher類

設(shè)置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 設(shè)置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"> <!-- 結(jié)果映射不能返回成一個類型時用resultTypt --><select id="getUserByCondition" parameterType="Map" resultType="User">select * from use<where><!-- 利用sql語句的傳參函數(shù)模糊匹配 --><if test="name!=null">name like CONCAT('%',#{name},'%')</if></where></select> </mapper>

1.5 創(chuàng)建查詢方法

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("************");} }

輸出結(jié)果:

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 動態(tài)SQL語句

引入了<where></where>條件語句,同時在里面寫if條件,若有多個if則除第一條語句外其余都需加and;

<where><!-- 利用sql語句的傳參函數(shù)模糊匹配 --><if test="name!=null">name like CONCAT('%',#{name},'%')</if> </where> 創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

總結(jié)

以上是生活随笔為你收集整理的xml模糊查询语句_2Mybatis学习笔记07:动态SQL语句(原创,转载请注明来源)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。