1. 程式人生 > >MyBatis的資料庫操作入門(五)

MyBatis的資料庫操作入門(五)

UserMapper.java新增一個方法

package cn.bdqn.dao;

import java.util.List;
import java.util.Map;

import cn.bdqn.pojo.User;

public interface UserMapper {

	List<User> getUserList();
	List<User> getUserLikeUserName(String userName);     //模糊查詢
	List<User> getUserLikeUserNameAndUserRole(User user);
	List<User> getUserByMap(Map<String,Object> map);
}

UserMapper.xml新增一個select

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.bdqn.dao.UserMapper">

	<select id="getUserList" resultType="cn.bdqn.pojo.User">
		Select * from smbms_user
	</select>
	
	<select id="getUserLikeUserName" parameterType="String" resultType="user">
  		select * from smbms_user where userName like concat('%',#{userName},'%')
  	</select>
  	
  	<select id="getUserLikeUserNameAndUserRole" parameterType="user" resultMap="userList">
  		select u.*,r.roleName from smbms_user u,smbms_role r 
  			where 
  			r.id=u.userRole 
  			and userRole=#{userRole} 
  			and userName like concat('%',#{userName},'%')
  	
  	</select>
  	
  	<resultMap type="user" id="userList">
  		<id column="id" property="id"/>
  		<result column="userName" property="userName" />
  		<result column="userCode" property="userCode" />
  		<result column="roleName" property="userRoleName" />
  	</resultMap>
  	
  	<select id="getUserByMap" parameterType="map" resultType="user">
  		select * from smbms_user where userRole=#{userRole} and userName like concat('%',#{userName},'%')
  	</select>
</mapper>

實體類程式碼:

package cn.bdqn.test;


import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.ibatis.session.SqlSession;
import org.apache.log4j.Logger;

import cn.bdqn.dao.UserMapper;
import cn.bdqn.pojo.User;
import cn.bdqn.util.MyBatisUtil;

public class Test {

	/*private static Logger logger = Logger.getLogger("Test");*/

	public static void main(String[] args) {

		//getUserCount();
		//getUserList();
		//getUserByName(sqlSession);
		//getUserLikeNameAndRole(sqlSession);
		SqlSession sqlSession = MyBatisUtil.getSqlSession();
		Map<String,Object> map=new HashMap<String,Object>();
		map.put("userRole", 3);
		map.put("userName", "孫");
		List<User> users = sqlSession.getMapper(UserMapper.class).getUserByMap(map);
		for (User user1 : users) {
			System.out.println(user1);
		}
		MyBatisUtil.closeSession(sqlSession);
	}

	
/*	private static void getUserLikeNameAndRole(SqlSession sqlSession) {
		User user=new User();
		user.setUserName("孫");
		user.setUserRole(3);
		List<User> users = sqlSession.getMapper(UserMapper.class).getUserLikeUserNameAndUserRole(user);
		
		for (User user1 : users) {
			System.out.println(user1);
		}
		MyBatisUtil.closeSession(sqlSession);
	}*/
	
	
	
/*	private static void getUserByName(SqlSession sqlSession) {
		List<User> users = sqlSession.getMapper(UserMapper.class).getUserLikeUserName("孫");
		for (User user : users) {
			System.out.println(user);
		}
		MyBatisUtil.closeSession(sqlSession);
	}*/
	
	
	
	
/*	public static void getUserList(){
		SqlSession session = MyBatisUtil.getSqlSession();
		//繫結Mapper介面
		List<User> userList = session.getMapper(UserMapper.class).getUserList();
		for (User user : userList) {
			logger.debug("使用者:" + user);
		}
		MyBatisUtil.closeSession(session);
	}*/
	

/*	private static void getUserCount() {
		SqlSession session = MyBatisUtil.getSqlSession();
		// 呼叫mapper檔案進行資料操作
		int count = session.selectOne("cn.bdqn.dao.UserMapper.count");

		logger.debug("使用者數量是:" + count);
		MyBatisUtil.closeSession(session);
	}*/
}

執行時候把mybatis-config.xml中的

<setting name="autoMappingBehavior" value="NONE"/>註釋掉,這樣資訊多點

執行結果:

[DEBUG] 2018-09-29 23:43:38,684 org.apache.ibatis.transaction.jdbc.JdbcTransaction - Opening JDBC Connection
[DEBUG] 2018-09-29 23:43:38,907 org.apache.ibatis.datasource.pooled.PooledDataSource - Created connection 1182320432.
[DEBUG] 2018-09-29 23:43:38,908 cn.bdqn.dao.UserMapper.getUserByMap - ooo Using Connection [[email protected]]
[DEBUG] 2018-09-29 23:43:38,909 cn.bdqn.dao.UserMapper.getUserByMap - ==>  Preparing: select * from smbms_user where userRole=? and userName like concat('%',?,'%') 
[DEBUG] 2018-09-29 23:43:38,940 cn.bdqn.dao.UserMapper.getUserByMap - ==> Parameters: 3(Integer), 孫(String)
User [address=北京市朝陽區管莊新月小區12樓, birthday=Sun Jan 04 00:00:00 CST 1981, createdBy=1, creationDate=Wed May 06 10:52:07 CST 2015, gender=2, id=10, modifyBy=null, modifyDate=null, phone=13387676765, userCode=sunlei, userName=孫磊, userPassword=0000000, userRole=3, userRoleName=null]
User [address=北京市朝陽區建國門南大街10號, birthday=Sun Mar 12 00:00:00 CST 1978, createdBy=1, creationDate=Wed Nov 09 16:51:17 CST 2016, gender=2, id=11, modifyBy=null, modifyDate=null, phone=13367890900, userCode=sunxing, userName=孫興, userPassword=0000000, userRole=3, userRoleName=null]
[DEBUG] 2018-09-29 23:43:38,998 org.apache.ibatis.transaction.jdbc.JdbcTransaction - Resetting autocommit to true on JDBC Connection [[email protected]]
[DEBUG] 2018-09-29 23:43:38,999 org.apache.ibatis.transaction.jdbc.JdbcTransaction - Closing JDBC Connection [[email protected]]
[DEBUG] 2018-09-29 23:43:38,999 org.apache.ibatis.datasource.pooled.PooledDataSource - Returned connection 1182320432 to pool.
 

相關推薦

MyBatis資料庫操作入門

UserMapper.java新增一個方法 package cn.bdqn.dao; import java.util.List; import java.util.Map; import cn.bdqn.pojo.User; public interface Use

MyBatis資料庫操作入門

前面寫了個實體類,不過沒有用到,下面我想列印smbms_user表的所有資訊 還是原來那個專案,在這裡有個問題,比如你要食物,就要建造一次工廠(工廠是用完就摧毀)來生產,那這樣就很麻煩了,每要一次食物就要建造一次工廠 下面我們可以把工廠封裝起來,放到工具類util裡面,以

MyBatis資料庫操作入門

修改密碼 UserMapper.java新增一個方法 package cn.bdqn.dao; import java.util.List; import java.util.Map; import org.apache.ibatis.annotations.Para

MyBatis資料庫操作入門

修改 UserMapper.java新增一個方法 package cn.bdqn.dao; import java.util.List; import java.util.Map; import cn.bdqn.pojo.User; public interface

MyBatis資料庫操作入門

刪除 UserMapper.java新增一個方法 package cn.bdqn.dao; import java.util.List; import java.util.Map; import org.apache.ibatis.annotations.Param;

Spring Boot快速入門:使用MyBatis註解形式進行資料庫操作

新增依賴 新建專案選擇web,MyBatis,MySQL三個依賴 對於已存在的專案可以在bulid.gradle加入,spring boot將會幫你自動配置好 compile('org.springframework.boot:spring-boot-sta

Spring Boot快速入門:使用MyBatis註解形式進行數據庫操作

訪問 ins name ont clas assert xxx main apach 原文地址:https://lierabbit.cn/articles/7 添加依賴 新建項目選擇web,MyBatis,MySQL三個依賴 對於已存在的項目可以在bulid.gradle

mybatis入門之Java API

Java API 既然你已經知道如何配置 MyBatis 和建立對映檔案,你就已經準備好來提升技能了。MyBatis 的 Java API 就是你收穫你所做的努力的地方。正如你即將看到的,和 JDBC 相比,MyBatis 很大程度簡化了你的程式碼並保持程式碼簡潔,容易

JavaWeb從新手到入門Spring Mybatis EasyUI實現商品列表

參考:《傳智播客-淘淘商城》 一、商品列表功能 商品列表功能是後端維護購物網站的商品的功能,提供了顯示、新增、編輯、刪除、下架和上架功能,顯示如下: 二、顯示功能的實現 開啟查詢商品後,後端首先按照分頁刷新出商品的資訊,因此顯示功能是第一步。 2.1 前端程式碼實現 前端

scala語言入門操作外部資料 及 專案實戰

一、scala 操作本地檔案,網路url import scala.io.Source object FileApp { def main(args: Array[String]): Unit = { val file = Source.fromFile("D:/HostKey

python爬蟲入門Selenium模擬使用者操作

爬蟲(Spider),反爬蟲(Anti-Spider),反反爬蟲(Anti-Anti-Spider) 之間恢巨集壯闊的鬥爭... 小莫想要某站上所有的電影,寫了標準的爬蟲(基於HttpClient庫),不斷地遍歷某站的電影列表頁面,根據 Html 分析電影名字存進自己的資料庫。 這個站

Node.JS入門——後臺接收頁面引數並儲存到資料庫

前言 在學習了nodejs和資料庫mysql互動的情況下,我們來學習一下如何從頁面上獲取引數然後存放到資料庫中,這種方式通常有兩種,一種是get方式,一種是post方式 內容 背景 本篇的主要場景是獲取註冊中的使用者名稱和密碼,然後儲存到資

Net Core 學習入門----------使用EF連結資料庫

由於netcore2.0集成了Ef,所以我們使用Ef的時候配置一下就行了。1,配置資料庫連結appsetting.json{ "Logging": { "IncludeScopes": false, "LogLevel": {

Hibernate入門

brush cti ride pack ng- gin import source builds 一 Hibernate繼承映射   我們可以將繼承層次結構類與數據庫的表映射。 1. 每個層次類一張表 這個層次結構有三個類,Employee是Regular_Employ

canvas入門

疊加 ans sla idt 分享 com 位移 res gree canvas一樣可以使用圖形變換。 位移,translate(x, y); 旋轉:retate(deg); 縮放:scale(sx,sy); 但這個過程有個陷阱,如 canvas.width =

cesium編程入門繪制形狀

cnblogs eve acf gem 場景 編程入門 host 元素 pos 通過Entity添加形狀 先來看一個添加立方體的例子 var viewer = new Cesium.Viewer(‘cesiumContainer‘); var redBox = **view

SCCM 2016 使用PXE 部署操作系統

mage process sta wds 序列 客戶端安裝 啟動服務 開始 proc 今天我們來測試一下上四篇文章我們配置完成的 SCCM PXE 推送操作系統的配置是否起效。順便提及一下可能出現的問題。首先,我們需要配置我們的DHCP服務器,從而將PXE功能指向到我們的S

python入門函數的定義

函數 高階函數 python中函數的定義以def開頭,後面跟函數定義的名稱和())‘括號中定義參數’ 以冒號開始,並且進行縮放,return結束如: def hello (ming): print ming return 傳遞參數: ming=[1,2,3]m

Python3入門——函數式編程

rabl rom pytho 介紹 計算 並且 span 但是 pan 一、高階函數   1.可以通過變量指向函數,達到類似別名的效果: >>> f = abs >>> f(-10) 10   2.函數的參數可以是函數,

MyBatis的動態SQL

pan 需要 9.png ack bat 鏈接 where In 標簽    用於實現動態SQL的元素主要有iftrimwheresetchoose(when、otherwise)foreach if標簽   Where標簽   Sql後面添加: where 1=1 ,那