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

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

刪除

UserMapper.java新增一個方法

package cn.bdqn.dao;

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

import org.apache.ibatis.annotations.Param;

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);
	
	int add(User user);
	int update(User user);
	int updatePassword(@Param("id")Long id,@Param("newPassword")String newPassword);
	int delete(Long id);
}

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>
  	
  	<insert id="add" parameterType="user">
  		INSERT INTO smbms_user (
  		`userCode`,
  		`userName`,
  		`userPassword`,
  		`gender`,
  		`birthday`,
  		`phone`,
  		`address`,
  		`userRole`,
  		`createdBy`,
  		`creationDate`) 
  		VALUES(
  		#{userCode},
  		#{userName},
  		#{userPassword},
  		#{gender},
  		#{birthday},
  		#{phone},
  		#{address},
  		#{userRole},
  		#{createdBy},
  		#{creationDate})
  	</insert>
  	
  	<update id="update" parameterType="user">
  	
  		UPDATE `smbms_user` SET 
  		`userCode`=#{userCode},
  		`userName`=#{userName},
  		`userPassword`=#{userPassword},
  		`gender`=#{gender},
  		`birthday`=#{birthday},
  		`phone`=#{phone},
  		`address`=#{address},
  		`userRole`=#{userRole},
  		`modifyBy`=#{modifyBy},
  		`modifyDate`=#{modifyDate}
  		WHERE id=#{id}
  	</update>
  	
  	<update id="updatePassword">
  		UPDATE `smbms_user` SET 
  		`userPassword`=#{newPassword}
  		WHERE id=#{id}
  	</update>
  	
  	<delete id="delete" parameterType="long">
  		delete from smbms_user where id=#{id}
  	</delete>
</mapper>

實體類程式碼:

package cn.bdqn.test;


import java.util.Date;
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);
		//getUserByMap(sqlSession);
		SqlSession sqlSession = MyBatisUtil.getSqlSession();
		//增加
		//User user=new User(17L, "andy", "劉德華", "1234567", 1, "13422369777", "HK", new Date(), 2, null, null, 1, new Date());
		//int count = sqlSession.getMapper(UserMapper.class).add(user);
		
		//修改
		//User user=new User(17L, "andy", "陳大錘", "1234567", 1, "13422369777", "HK", new Date(), 2, null, null, 1, new Date());
		//int count = sqlSession.getMapper(UserMapper.class).update(user);
		
		//修改密碼
		//int count = sqlSession.getMapper(UserMapper.class).updatePassword(17L, "0000000");
		
		//刪除
		int count = sqlSession.getMapper(UserMapper.class).delete(17L);
		sqlSession.commit();
		System.out.println("刪除了"+count+"條資料!");
		MyBatisUtil.closeSession(sqlSession);
	}

	
/*	private static void getUserByMap(SqlSession sqlSession) {
		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);
		}
	}*/
	
	
	
/*	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);
	}*/
}

執行結果如下:

[DEBUG] 2018-09-30 00:16:27,395 org.apache.ibatis.transaction.jdbc.JdbcTransaction - Opening JDBC Connection
[DEBUG] 2018-09-30 00:16:27,658 org.apache.ibatis.datasource.pooled.PooledDataSource - Created connection 2015601401.
[DEBUG] 2018-09-30 00:16:27,658 cn.bdqn.dao.UserMapper.delete - ooo Using Connection [[email protected]]
[DEBUG] 2018-09-30 00:16:27,658 cn.bdqn.dao.UserMapper.delete - ==>  Preparing: delete from smbms_user where id=? 
[DEBUG] 2018-09-30 00:16:27,705 cn.bdqn.dao.UserMapper.delete - ==> Parameters: 17(Long)
[DEBUG] 2018-09-30 00:16:27,784 org.apache.ibatis.transaction.jdbc.JdbcTransaction - Committing JDBC Connection [[email protected]]
刪除了1條資料!
[DEBUG] 2018-09-30 00:16:27,863 org.apache.ibatis.transaction.jdbc.JdbcTransaction - Resetting autocommit to true on JDBC Connection [[email protected]]
[DEBUG] 2018-09-30 00:16:27,863 org.apache.ibatis.transaction.jdbc.JdbcTransaction - Closing JDBC Connection [[email protected]]
[DEBUG] 2018-09-30 00:16:27,863 org.apache.ibatis.datasource.pooled.PooledDataSource - Returned connection 2015601401 to pool.
 

資料庫:

相關推薦

MyBatis資料庫操作入門

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

MyBatis資料庫操作入門

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

MyBatis資料庫操作入門

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

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

Excel VBA入門操作工作薄

數據 () rate param 環境 clas filename 只有一個 循環 雖然我前面講過,在VBA中操作工作薄並不是件明智的事,但有些時候,還是避免不了要這麽做。絕大多數情況下,我們要做的是獲取到某個工作薄對象,並以此來獲得其中的工作表對象,然後再對工作表中的數據

11-Linux基礎入門-Linux的通配符

cal echo 微信公眾平臺 當前 技術分享 vertical hub font not 一、概述Linux的通配符和正則表達式是不一樣的,因此代表的意義也是有較大區別的。通配符一般用於用戶命令行bash環境,而Linux正則表達式用於grep、sed、awk場景。符號代

python入門常用模塊

模塊python的常用模塊很多比如日誌模塊logging調用日誌模塊 import logging 級別高低順序: DEBUG < INFO < WARNING < ERROR < CRITICAL默認從warning以後包含warning開始打印如果想打印全面,可以調整默認的模版 i

資料庫視訊總結——自動化

這是資料庫視訊第十三章所述——自動化,自動化為sql帶來很大的便利,更能給程式設計師帶來很大的便捷,首先就讓我們來了解一下自動化吧: SQL自動化概述 功能: 很多管理任務都可以設定成自動化來實現,主要包括以下方面: 1、Tsql語句 2、作業系統命令 3、指令碼語言

wxWidget入門

這一期做一個簡易畫板 帶有功能: 畫直線 Undo Redo 儲存圖片 回顧上一期的內容,畫畫是用滑鼠拖動時間,不斷追蹤滑鼠位置,進而畫出斷續的點,缺點明顯。 先把上一期問題解決,解決思路:利用短直線將上一次獲取的滑鼠位置,和這一次連線起來。 ①畫出直

java多執行緒快速入門

多執行緒安全問題(賣火車票案例) package com.cppdy; class MyThread5 implements Runnable{ private Integer ticketCount=100; @Override public void run() {

Python入門函式與模組

Python 函式 定義一個函式 你可以定義一個由自己想要功能的函式,以下是簡單的規則: 函式程式碼塊以 def 關鍵詞開頭,後接函式識別符號名稱和圓括號()。 任何傳入引數和自變數必須放在圓括號中間。圓括號之間可以用於定義引數。 函式的第一行語句可以選擇性地使

CI框架資料庫操作方法參考

<?php class demo_model extends CI_Model { public function __construct() { $this->load->database(); } //查詢例項 public function select

資料庫學習筆記

本章理論性較強,晦澀難懂部分本人已做簡單敘述,如有理解不到位之處,還請指出,謝謝 一.資料庫規範性設計 為了避免資料庫一致性問題,因此需要進行資料庫規範性設計。需要滿足三大理論: 資料依賴理論 關係正規化理論 模式分解理論   二.函

Swift入門——String與Int、Double、Float等數字相互轉換

Swift的三種轉換模式 在Swift裡面,Int、float、double等數字型別自成一派,但它們和String型別之間的轉換總是不太方便,這裡總結一下它們相互轉換的方法。總結下來一共有三種轉換模式,分別舉例說明。 一、String轉數字 這裡以S

資料庫學習總結——檢視

文章目錄 檢視的定義 建立檢視 修改檢視 檢視檢視 更新檢視 刪除檢視 檢視的定義 檢視是一種虛擬存在的表,對於使用檢視的使用者來說基本上是透明的。檢視並不在資料庫中實際存在,行和列資料來自定義檢視的查詢總使用的表,並

Flask Web開發入門之表單處理

本章我們介紹Flask Web開發中的表單處理 application/json型別請求 前臺請求程式碼: $.ajax({ u

mybatis學習之入門

前言:       從開始的JDBC經歷dbuttls,mybatis,Hebernate,JDBC是最熟悉不過的了,JDBC提供了一種基準,據此可以構建更高階的工具和介面,使資料庫開發人員能夠編寫

SpringCloud SpringBoot mybatis 分散式微服務Spring Boot中使用Spring-data-jpa讓資料訪問更簡單

然而,在實際開發過程中,對資料庫的操作無非就“增刪改查”。就最為普遍的單表操作而言,除了表和欄位不同外,語句都是類似的,開發人員需要寫大量類似而枯燥的語句來完成業務邏輯。為了解決這些大量枯燥的資料操作語句,我們第一個想到的是使用ORM框架,比如:Hibernate。通過整合H

NLP入門詞義消岐WSD的簡介與實現

詞義消岐簡介   詞義消岐,英文名稱為Word Sense Disambiguation,英語縮寫為WSD,是自然語言處理(NLP)中一個非常有趣的基本任務。   那麼,什麼是詞義消岐呢?通常,在我們的自然語言中,不管是英語,還是中文,都有多義詞存在。這些多義詞的存在,會讓人對句子的意思產生混淆,但人通過學習