第一章:Mybatis開發環境搭建,整合mysql資料庫
一)開發前準備
mybatis-3.4.6.jar
mysql-connector-java-5.1.34-bin.jar
說明:在本章末尾有原始碼下載地址,裡面已包含jar
二)Mybatis開發環境搭建
1) 建立一個Dynamic Web Project,名稱為:xm-mybatis-one,專案結構圖如下:
2)建立員工實體檔案EmployeeEntity.java
package com.xm.mybatis.entity; /** * 員工表 entity * @author ouyangjun * */ public class EmployeeEntity { private Integer empId; private String empName; private String empNO; private Long createDate; public Integer getEmpId() { return empId; } public void setEmpId(Integer empId) { this.empId = empId; } public String getEmpName() { return empName; } public void setEmpName(String empName) { this.empName = empName; } public String getEmpNO() { return empNO; } public void setEmpNO(String empNO) { this.empNO = empNO; } public Long getCreateDate() { return createDate; } public void setCreateDate(Long createDate) { this.createDate = createDate; } }
3)建立員工實體對映檔案EmployeeEntity.xml
<?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="com.xm.mybatis.dao.EmployeeDAO"> <insert id="addEmployee"> insert into employee(emp_id,emp_name,emp_no,create_date) values(#{empId}, #{empName}, #{empNO}, #{createDate}) </insert> <select id="getEmployeeByEmpId" parameterType="java.lang.String" resultType="employeeEntity"> select emp_id as empId, emp_name as empName, emp_no as empNO, create_date as createDate from employee where emp_id = #{empId} </select> <update id="updateEmployee"> </update> <!-- foreach元素的屬性主要有 item,index,collection,open,separator,close。 item表示集合中每一個元素進行迭代時的別名, index指 定一個名字,用於表示在迭代過程中,每次迭代到的位置, open表示該語句以什麼開始, separator表示在每次進行迭代之間以什麼符號作為分隔 符, close表示以什麼結束。 collection 1. 如果傳入的是單引數且引數型別是一個List的時候,collection屬性值為list, parameterType="java.util.List" 2. 如果傳入的是單引數且引數型別是一個array陣列的時候,collection的屬性值為array, parameterType="java.util.ArrayList" 3. 如果傳入的引數是多個的時候,我們就需要把它們封裝成一個Map了,當然單引數也可, parameterType="java.util.HashMap" --> <delete id="deleteEmployeeEntityByEmpId" parameterType="java.util.ArrayList"> delete from employee where 1=1 and emp_Id in <foreach collection="array" index="index" item="item" open="(" separator="," close=")"> #{item} </foreach> </delete> </mapper>
4)建立員工介面檔案EmployeeDAO.java
package com.xm.mybatis.dao; import com.xm.mybatis.entity.EmployeeEntity; public interface EmployeeDAO { /** * 根據empId獲取員工資訊 * @param empId * @return */ EmployeeEntity getEmployeeByEmpId(String empId); /** * 新增員工 * @param entity * @return */ int addEmployee(EmployeeEntity entity); /** * 根據empId修改使用者資訊 * @param empId * @return */ int updateEmployee(EmployeeEntity entity); /** * 根據empId刪除使用者 */ int deleteEmployeeEntityByEmpId(String[] empIds); }
5)建立mybatis核心配置檔案mybatis.cfg.xml。注:該檔名可隨意,在讀取配置時指定。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!-- 給全限定類名命個別名,減少xml實體類引用程式碼 -->
<typeAliases>
<!-- 方式一:給單個實體類名一個別名,在對應的xml中引用別名即可
<typeAlias alias="employeeEntity" type="com.xm.mybatis.entity.EmployeeEntity"></typeAlias>
-->
<!-- 方式二:當有多個實體類的時候,引用實體類包名,實體類別人首字母預設小寫(如: employeeEntity)。如果實體類上有註解別名,以註解為準! -->
<package name="com.xm.mybatis.entity"/>
</typeAliases>
<environments default="development">
<environment id="development">
<!-- type="JDBC" 表示使用JDBC的提交和回滾管理事務 -->
<transactionManager type="JDBC" />
<!-- mybatis提供了3種資料來源型別,分別是:POOLED,UNPOOLED,JNDI -->
<!-- POOLED 表示支援JDBC資料來源連線池 -->
<!-- UNPOOLED 表示不支援資料來源連線池 -->
<!-- JNDI 表示支援外部資料來源連線池 -->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/xm" />
<property name="username" value="root" />
<property name="password" value="admin" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/xm/mybatis/entity/EmployeeEntity.xml" />
</mappers>
</configuration>
6)建立獲取SqlSessionFactory的工具類SessionUtils.java。通過單列模式實現。
package com.xm.mybatis.utils;
import java.io.IOException;
import java.io.Reader;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class SessionUtils {
/**
* 內部類單列模式實現讀取mybatis配置檔案
* @author ouyangjun
*/
private static class LasyHolder {
private static Reader READER = getReader();
public static Reader getReader() {
try {
System.out.println("==>讀取mybatis.cfg.xml檔案中的配置!");
// 讀取mybatis配置檔案
return Resources.getResourceAsReader("mybatis.cfg.xml");
} catch (IOException e) {
System.out.println("==>讀取mybatis.cfg.xml檔案中的配置錯誤 error!");
e.printStackTrace();
}
return null;
}
}
/**
* 獲取配置檔案物件
* @return
*/
public static Reader getReader() {
return LasyHolder.READER;
}
/**
* 執行緒本地配置宣告
*/
public static ThreadLocal<SqlSessionFactory> threadLocal = new ThreadLocal<SqlSessionFactory>();
/**
* ThreadLocal獲取SqlSessionFactory
* @return
*/
public static SqlSessionFactory getSqlSessionFactory() {
// 獲取sqlSessionFactory
SqlSessionFactory sqlSessionFactory = threadLocal.get();
System.out.println("sqlSessionFactory: " + sqlSessionFactory);
if (sqlSessionFactory == null) {
System.out.println("sqlSessionFactory is null 重新獲取SqlSessionFactory!");
// 讀取mybatis配置檔案
Reader reader = SessionUtils.getReader();
// 重新建立SqlSessionFactory
sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
// 把sqlSessionFactory新增到ThreadLocal中
threadLocal.set(sqlSessionFactory);
}
// 返回
return sqlSessionFactory;
}
}
7)新增員工新增測試類AddEmployeeTest.java,執行該方法之後可自行到mysql資料庫檢視。
package com.xm.mybatis.test;
import java.util.Date;
import org.apache.ibatis.session.SqlSession;
import com.xm.mybatis.dao.EmployeeDAO;
import com.xm.mybatis.entity.EmployeeEntity;
import com.xm.mybatis.utils.SessionUtils;
public class AddEmployeeTest {
public static void main(String[] args) {
// 獲取SqlSession
SqlSession sqlSession = null;
try {
sqlSession = SessionUtils.getSqlSessionFactory().openSession();
// 初始化介面
EmployeeDAO employeeDAO = sqlSession.getMapper(EmployeeDAO.class);
EmployeeEntity emp = new EmployeeEntity();
emp.setEmpId(100000);
emp.setEmpName("ouyangjun");
emp.setEmpNO("333333");
emp.setCreateDate(new Date().getTime());
// 持久化
employeeDAO.addEmployee(emp);
emp = new EmployeeEntity();
emp.setEmpId(200000);
emp.setEmpName("xm");
emp.setEmpNO("888888");
emp.setCreateDate(new Date().getTime());
// 持久化
employeeDAO.addEmployee(emp);
// 提交事務
sqlSession.commit();
System.out.println("==>員工資料持久化成功!");
} catch (Exception e){
e.printStackTrace();
sqlSession.rollback();
System.out.println("==>員工資料持久化失敗!");
} finally {
sqlSession.close();
System.out.println("==>事務關閉!");
}
}
}
8)新增員工查詢測試類GetEmployeeTest.java
package com.xm.mybatis.test;
import java.io.IOException;
import org.apache.ibatis.session.SqlSession;
import com.xm.mybatis.dao.EmployeeDAO;
import com.xm.mybatis.entity.EmployeeEntity;
import com.xm.mybatis.utils.SessionUtils;
public class GetEmployeeTest {
public static void main(String[] args) throws IOException {
// 獲取SqlSession
SqlSession sqlSession = SessionUtils.getSqlSessionFactory().openSession();
// 初始化介面
EmployeeDAO employeeDAO = sqlSession.getMapper(EmployeeDAO.class);
EmployeeEntity entity = employeeDAO.getEmployeeByEmpId("100000");
if(entity!=null){
System.out.println(entity.getEmpId()+" "+entity.getEmpName()+" "+entity.getEmpNO());
} else {
System.out.println("根據empId未查詢到資料!");
}
System.out.println("----------測試SqlSessionFactory單列----------");
sqlSession = SessionUtils.getSqlSessionFactory().openSession();
// 初始化介面
employeeDAO = sqlSession.getMapper(EmployeeDAO.class);
entity = employeeDAO.getEmployeeByEmpId("100000");
if(entity!=null){
System.out.println(entity.getEmpId()+" "+entity.getEmpName()+" "+entity.getEmpNO());
} else {
System.out.println("根據empId未查詢到資料!");
}
sqlSession.close();
}
}
查詢效果圖如下:
9)新增員工刪除測試類DeleteEmployeeTest.java
package com.xm.mybatis.test;
import java.io.IOException;
import org.apache.ibatis.session.SqlSession;
import com.xm.mybatis.dao.EmployeeDAO;
import com.xm.mybatis.utils.SessionUtils;
public class DeleteEmployeeTest {
public static void main(String[] args) throws IOException {
// 獲取SqlSession
SqlSession sqlSession = null;
try {
sqlSession = SessionUtils.getSqlSessionFactory().openSession();
// 初始化介面
EmployeeDAO employeeDAO = sqlSession.getMapper(EmployeeDAO.class);
String[] empIds = {"100000","200000"};
employeeDAO.deleteEmployeeEntityByEmpId(empIds);
sqlSession.commit();
System.out.println("==>員工資料刪除成功!");
} catch (Exception e){
e.printStackTrace();
sqlSession.rollback();
System.out.println("==>員工資料刪除失敗!");
} finally {
sqlSession.close();
System.out.println("==>事務關閉!");
}
}
}
本章完結,待續!
碼雲賬戶: [email protected] 密碼: [email protected]
請勿惡意操作,謝謝!
本文說明:該文章屬於原創,如需轉載,請標明文章轉載來源
相關推薦
第一章:Mybatis開發環境搭建,整合mysql資料庫
一)開發前準備 mybatis-3.4.6.jar mysql-connector-java-5.1.34-bin.jar 說明:在本章末尾有原始碼下載地址,裡面已包含jar 二)Mybatis開發環境搭建 1) 建立一個Dynamic Web Project,名稱
第一章:在IDEA裡搭建基於Forge的Minecraft mod開發環境
<基於1.8 Forge的Minecraft mod製作經驗分享> 網上關於Forge開發環境搭建的文章其實有不少,但大都是基於Eclipse的。 作為用Java開發的環境,怎麼能沒有IDEA神器的支援呢。 廢話不多說,上步驟: 首先你應該已經裝好
第一節:es6開發環境的搭建
index 項目結構 json dev 技術 reset ID .com 分享 第一章:es6開發環境的搭建 命令:npm init -y 生成package.json文件(依賴文件);項目結構如下: 全局安裝 babel-cli 命令如下:npm instal
ESP32系列教程:《入門篇:ESP32開發環境搭建優化》,windows下開發速度堪比Linux
github教程地址: 優化一:https://github.com/xiaolongba/wireless-tech/blob/master/%E8%BD%AF%E4%BB%B6/%E7%BA%A2%E6%97%AD%E6%97%A0%E7%BA%BF%E5%BC%80%E5%8F%91%
Python爬蟲學習==>第一章:Python3+Pip環境配置
sof 環境 pts window https 有時 naconda 步驟 管家 前置操作 軟件名:anaconda 版本:Anaconda3-5.0.1-Windows-x86_64清華鏡像 下載鏈接:https://mirrors.tuna.tsinghua.ed
第2次作業:基礎開發環境搭建
convert 第一部分 block 自己的 https .com 開發環境 war loader 第2次作業:基礎開發環境搭建 第一部分:我的本次作業成果 我自己個人的github地址是:Abel202我們開發團隊小組的github地址是:SoftwareEngin
win10的react native 開發環境搭建,使用Android模擬器
1.開啟cmd的管理員模式,win+X,選擇命令提示符(管理員)即可,執行如下命令: @"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy
Java程式設計師從笨鳥到菜鳥之(一)開發環境搭建,基本語法,字串,陣列
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
【VUE】Mac下vue 開發環境搭建,以及目錄結構
1 安裝Node.js 參看 node.js環境安裝 http://www.cnblogs.com/richerdyoung/p/7265786.html 2 安裝淘寶映象 sudo npm ins
第1篇:Java開發環境搭建
這裡僅以windows為例 1. 下載安裝JDK 下載地址:https://www.oracle.com/technetwork/java/javase/downloads/index.html 2. 配置環境變數 右鍵 “我的電腦” --> 屬性 --
海思開發環境搭建,編譯整個osdrv
1、開發環境 windows10電腦 + 虛擬機器14 Pro + Ubuntu16.0.4 2、拷貝並解壓。將 Hi3518E_SDK_V1.0.3.0.tgz拷貝到 Linux 伺服器上。 cd ~/sambashare/ cp /mnt/hgfs/w
ESP32_Lyrat開發環境搭建,安裝IDF與ADF,燒入demo播放一段音訊
前言 前段時間入手了ESP32_Lyrat開發板,但是網上資料少之又少,經過自身一番摸索後完成了開發環境搭建以及demo燒錄,這裡僅作分享,做拋磚引玉之用,有錯誤之處望不吝賜教。 參考文件 開發環境 Windows(Linux步驟大致相同) 準備檔案
ESP32系列教程:《入門篇:ESP32開發環境搭建》--Windows下使用VScode搭建ESP32開發環境
github地址:https://github.com/xiaolongba/wireless-tech 如何搭建ESP32開發環境 前言 ESP32是樂鑫在其上一代ESP8266一炮而紅之後,推出的第二代高性價比的產品,ESP32在上一代的基礎上增加了藍芽4.2的功能,加上
本機開發環境搭建,java
本機環境說明 本機環境:win7 64位。需要進行的工作:對一個前後端不分離,採用springmvc框架的專案專案進行二次開發,版本管理使用git。 需要安裝的軟體 JDK1.8,整合開發環境(STS或者Eclipse),mysql5.7, navicat f
樹莓派開發筆記(二):qt開發環境搭建:樹莓派qt編譯和宿主機qt交叉編譯
樹莓派開發筆記(二):qt開發環境搭建:樹莓派qt編譯和宿主機qt交叉編譯前話 前面已經成功執行樹莓派,下面使用qt開發樹莓派產品。搭建樹莓派qt編譯環境(不推薦:開發編譯速度慢) 安裝樹莓派的桌面版本,可以直接配置qt環境,此種方法總是卡卡的,所
我的openwrt學習筆記(二):OpenWrt 開發環境搭建
首先我們首選的OpenWrt 編譯環境是 Ubuntu,並且應儘量選擇穩定的LTS版本,而不是更高版本的。這裡我們推薦使用 Ubuntu 12.04 LTS或者Ubuntu 14.04 LTS作為編譯平臺,此平臺必須要能穩定地接入網路。我們推薦您使用以下或更高的硬體配置:
mybatis開發環境搭建
1.把需要的jar包匯入到工程中,我用到的是這兩個jar包。 2.在mysql中建立一個測試用資料庫以及在該資料庫中建表插入一條資料。 3.在工程中建立一個pakage命名為model,model中是與資料庫對應的類以及一個對映檔案xml。 4.建立配置檔案Configu
JFinal開發環境搭建,JFinal開發案例
JFinal 是基於 Java 語言的極速 WEB + ORM 開發框架,其核心設計目標是開發迅速、程式碼量少、學習簡單、功能強大、輕量級、易擴充套件、Restful。在擁有Java 語言
EOS開發環境搭建,如何編譯安裝構建EOSIO
獲取程式碼 下載所有的EOSIO程式碼,clone eos庫和所有的子模組。 shell 命令如下: git clone https://github.com/EOSIO/eos --recursive 如果忘記加 --recursive 引數也沒關
mybatis 開發環境搭建
不說廢話直接上程式碼,首先看下我的目錄機構: 紅色部分,表明你所需的jar包,已經配置檔案. 建立使用者表,以及插入資料. create table books(id int (11) not