Mybatis-----CRUD

来源:http://www.cnblogs.com/shandouji1121/archive/2017/12/20/8068471.html
-Advertisement-
Play Games

學而不思則罔,思而不學則殆。 mybatis 增刪改查,用到了MyEclipse中自帶的Junit4做單元測試,沒啥難度,作為練習。關於jar包和目錄結構請參考上一篇,這裡直接上代碼。 下一篇會寫關於配置文件優化,聯合查詢,以及使用註解的方式,客官們不要著急! ...


                  學而不思則罔,思而不學則殆。

mybatis 增刪改查,用到了MyEclipse中自帶的Junit4做單元測試,沒啥難度,作為練習。關於jar包和目錄結構請參考上一篇,這裡直接上代碼。

 1 <?xml version="1.0" encoding="UTF-8" ?> 
 2 <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" 
 3          "http://mybatis.org/dtd/mybatis-3-config.dtd">
 4 <configuration>
 5     <environments default="development">
 6         <environment id="development">
 7             <transactionManager type="JDBC" />
 8             <!-- 配置數據源 相當於JDBC連接資料庫
 9               Class.forName("oracle.jdbc.driver.OracleDriver");
10               String user = "scott";
11                String password = "tiger";
12               String url = "jdbc:oracle:thin:@localhost:1521:orcl";
13             -->
14             <dataSource type="POOLED">
15                 <property name="driver" value="oracle.jdbc.driver.OracleDriver"/>
16                 <property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl"/>
17                 <property name="username" value="scott" />
18                 <property name="password" value="tiger" />
19             </dataSource>
20         </environment>
21     </environments>
22     <!-- 讀取Mapper包下的UserinfoMapper.xml文件 -->
23     <mappers>
24         <mapper resource="Mapper/UserinfoMapper.xml" />
25     </mappers>
26 </configuration>

 

  1 package TEST;
  2 
  3 
  4 import java.io.IOException;
  5 import java.io.InputStream;
  6 
  7 import org.apache.ibatis.io.Resources;
  8 import org.apache.ibatis.session.SqlSession;
  9 import org.apache.ibatis.session.SqlSessionFactory;
 10 import org.apache.ibatis.session.SqlSessionFactoryBuilder;
 11 import org.junit.Test;
 12 
 13 import bean.Userinfo;
 14 
 15 
 16 public class Demo {
 17 
 18 
 19     //根據ID查詢用戶
 20     @Test
 21     public void findbyuserinfoID() throws Throwable{
 22         
 23         // TODO Auto-generated method stub
 24 
 25                 // 載入Mybatis的主配置文件
 26                 InputStream is = Resources.getResourceAsStream("SqlMapConfig.xml");
 27                 
 28                 // 創建生產session的工廠類 session不是作用域 -- 相當於connection
 29                 SqlSessionFactoryBuilder sfb = new SqlSessionFactoryBuilder();
 30                 SqlSessionFactory ssf = sfb.build(is);
 31                 // 打開session
 32                 SqlSession session=ssf.openSession();
 33                 //執行sql語句
 34 
 35                 String  name=session.selectOne("UserinfoMapper.getuser", 3);
 36                 System.out.println("name:"+ name);
 37                 session.close();
 38                 System.out.println("over");
 39         
 40     }
 41 
 42     //添加用戶
 43     @Test
 44     public void insertuserinfo() throws Throwable{
 45         
 46         System.out.println("添加用戶");
 47         InputStream is = Resources.getResourceAsStream("SqlMapConfig.xml");
 48         
 49         // 創建生產session的工廠類 session不是作用域 -- 相當於connection
 50         SqlSessionFactoryBuilder sfb = new SqlSessionFactoryBuilder();
 51         SqlSessionFactory ssf = sfb.build(is);
 52         // 打開session
 53         SqlSession session=ssf.openSession();
 54         //執行sql語句
 55         int  result=session.delete("UserinfoMapper.deleteuser", 3);
 56         //String  name=session.selectOne("UserinfoMapper.deleteUser", 1);
 57         System.out.println("result:"+ result);
 58         //如果刪除沒有成功,可能是因為沒有提交事務   一定要註意
 59         session.commit();
 60         session.close();
 61     }
 62     
 63     //刪除用戶
 64     @Test
 65     
 66     public void deleteuserinfoid() throws Throwable{
 67         System.out.println("刪除用戶");
 68         InputStream is = Resources.getResourceAsStream("SqlMapConfig.xml");
 69         
 70         // 創建生產session的工廠類 session不是作用域 -- 相當於connection
 71         SqlSessionFactoryBuilder sfb = new SqlSessionFactoryBuilder();
 72         SqlSessionFactory ssf = sfb.build(is);
 73         // 打開session
 74         SqlSession session=ssf.openSession();
 75         //執行sql語句
 76     //    int  result=session.delete("UserinfoMapper.deleteuser", 3);
 77         Userinfo u = new Userinfo();
 78         u.setUname("文刀山豆幾");
 79         u.setUpass("123");
 80         u.setId(5);
 81         
 82         int Statement  = session.insert("UserinfoMapper.adduser", u);
 83         //String  name=session.selectOne("UserinfoMapper.deleteUser", 1);
 84         System.out.println("result:"+ Statement);
 85         //如果刪除沒有成功,可能是因為沒有提交事務   一定要註意
 86         session.commit();
 87         session.close();
 88     }
 89     //修改用戶
 90     @Test
 91     public void updateuserinfo() throws Throwable{
 92         
 93         System.out.println("修改用戶");
 94         InputStream is = Resources.getResourceAsStream("SqlMapConfig.xml");
 95         
 96         // 創建生產session的工廠類 session不是作用域 -- 相當於connection
 97         SqlSessionFactoryBuilder sfb = new SqlSessionFactoryBuilder();
 98         SqlSessionFactory ssf = sfb.build(is);
 99         // 打開session
100         SqlSession session=ssf.openSession();
101         //執行sql語句
102     //    int  result=session.delete("UserinfoMapper.deleteuser", 3);
103         
104         Userinfo user = new Userinfo();
105         user.setId(1);
106         user.setUname("aaaaa");
107         user.setUpass("fff");
108         System.out.println("aaa");
109         int a  = session.update("UserinfoMapper.updateuser",user);
110         
111         //String  name=session.selectOne("UserinfoMapper.deleteUser", 1);
112         System.out.println("a:"+ a);
113         //如果刪除沒有成功,可能是因為沒有提交事務   一定要註意
114         session.commit();
115         session.close();
116     }
117     
118 }

 

下一篇會寫關於配置文件優化,聯合查詢,以及使用註解的方式,客官們不要著急!

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 對於前端開發人員來說,如果能夠掌握互動式網頁中的數據可視化技術,則是一項很棒的技能。當然,通過一些 JavaScript 的圖表庫也會使前端的數據可視化變得更加容易。 ...
  • 1. 判斷字元串是否是這樣組成的,第一個必須是字母,後面可以是字母、數字、下劃線,總長度為5-20 var reg = /^[a-zA-Z][a-zA-Z_0-9]{4,19}$/; reg.test("a1a__a1a__a1a__a1a__"); var reg = /^[a-zA-Z][a-z ...
  • 1.高效的通信組件(優秀的非同步socket框架) 2.快速存儲(redis等) 3.消息路由功能(消息分發) 4.健康監測(heartbeat),故障轉移 5.廣播(broadcast),發佈(publish),訂閱(subscript),確認(ack)功能 6.授權 ...
  • 本篇主要是來分享從頭開始搭建一個dubbo+zookeeper平臺的過程,其中會簡要介紹下dubbo服務的作用。 首先,看下一般網站架構隨著業務的發展,邏輯越來越複雜,數據量越來越大,交互越來越多之後的常規方案演進歷程。 其次,當服務越來越多之後,我們需要做哪些服務治理? 最後,是dubbo的架構圖 ...
  • 1、前言 PHP加密方式分為單項散列加密,對稱加密,非對稱加密這幾類。 像常用的MD5、hash、crypt、sha1這種就是單項散列加密,單項散列加密是不可逆的。 像URL編碼、base64編碼這種就是對稱加密,是可逆的,就是說加密解密都是用的同一秘鑰。 除此外就是非對稱加密,加密和解密的秘鑰不是 ...
  • module定義 對於可復用的函數集,可以對其進行分組,整合到一個或者若幹個.py文件中,而在python中,一個.py文件就叫做一個模塊。變數,函數。 module註意點 為了避免命名衝突,python中引入目錄組織的方式,這裡稱之為包(package) 每個包下都會有一個__init__.py文 ...
  • 一、Java開發環境概述 1、JDK:Java開發工具包(Java Development Kit),包括java編譯器、java運行時環境和常用的類庫 2、JRE:Java運行時環境(Java Runtime Environment) 二、跨平臺特性 1、平臺指的是操作系統(Windows,Lin ...
  • 編者按:README:此代碼為用戶登陸界面,添加了尋求幫助選項。1.學習了基本數據類型,string, int,以及while迴圈,continue, break, if, elif, else條件語句,“x".format(x)變數替代2.上網搜的dictionary用法,由於用的是python3 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...