MyBatis的新增使用者
**
一、MyBatis環境搭建
**
1.Mybatis介紹
(1)Mybatis是什麼?
MyBatis 本是apache的一個開源專案iBatis,是一個基於Java的持久層框架,用來寫dao
(2)Mybatis有什麼特點?
》1 最簡單安裝只要兩個jar檔案+配置幾個sql對映檔案,自帶連線池
》2 sql寫在xml裡,便於統一管理和優化
》3 sql和程式碼的分離,提高了可維護性
》4 提供對映標籤,支援物件與資料庫的orm欄位關係對映
》5 提供物件關係對映標籤,支援物件關係組建維護
》6 提供xml標籤,支援編寫動態sql
2.MyBatis下載使用
mybaits的程式碼由github.com管理
下載地址:https://github.com/mybatis/mybatis-3/releases
下載解壓後會得到這樣的目錄結構:
mybatis-3.4.5.jar是MyBatis的核心包,mybatis-3.4.5.pdf是MyBatis的使用手冊,lib資料夾下的JAR是MyBatis的依賴包。
使用MyBatis框架時,需要將它的核心包和依賴包引入到應用程式中。
MyBatis的使用需要匯入jar或者依賴
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.5</version>
</dependency>
建立日誌類log4j
MyBatis預設使用log4j輸出日誌資訊,如果開發者需要檢視控制檯輸出的SQL語句,那麼需要匯入log4j的依賴
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.25</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
3.Mybatis架構
(1)mybaits 是對jdbc的封裝
(2)重點在配置檔案xml
(3)架構圖
4.通過MyBatis的getMapper實現增刪查改
https://github.com/strive-xgf/SSM/commit/cdded0e4200374f7b1094f137b6786b2b883adeb
(1)匯入依賴包
junit
junit
4.11
test
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.32</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.5</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.6.2</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-jcl</artifactId>
<version>2.6.2</version>
</dependency>
(2) 在resources目錄下,建立log4j2.xml日誌檔案配置
<?xml version="1.0" encoding="UTF-8"?> <Root level="error">
<AppenderRef ref="Console"/>
</Root>
</Loggers>
(3)建立bean (User類)
//User使用者類
public class User {
private int id; //主鍵id
private String username; //使用者名稱
private Date birthday; //出生日期
private int sex; //性別
private String address; //家庭地址
//這裡省略getter和setter方法,toString方法
}
(4)建立User類的對映檔案
//建立User類的對映檔案
public interface UserMapper {
//通過id查詢user
public User getUserById(int id);
//通過模糊搜尋,找到對應的使用者名稱
// select * from user where username like '張%'
List<User> findByUsername(String username);
//通過id刪除user
public void deleteById(int id);
//新增user
public void saveUser(User user);
//更新user
public int updateUser(User user);
}
(5)核心配置檔案 mybatis-config.xml
<?xml version="1.0" encoding="UTF-8" ?><!-- mappers 用來配置多個對映檔案(寫sql語句的檔案),指定配置檔案 -->
<mappers>
<mapper resource="com.xgf.mybatisdemo.dao.UserMpper"/>
</mappers>
(6)建立UserMapper.xml寫sql語句實現增刪查改
<?xml version="1.0" encoding="UTF-8" ?> select * from user where id = #{id}<!-- keyProperty 獲取到的新插入的記錄的主鍵賦值給返回物件的屬性
useGeneratedKeys="true",使用主鍵生成(主鍵自動增長)
keyProperty="id" 將主鍵的值id賦值給物件user (建立物件的時候不用賦值主鍵值)
-->
<insert id="saveUser" parameterType="com.xgf.mybatisdemo.bean.User" useGeneratedKeys="true" keyProperty="id">
insert into user(username,birthday,sex,address) values(#{username},#{birthday},#{sex},#{address});
</insert>
<!-- 輸出多個使用者物件 , mybatis 會自動判斷 如果是多個User物件,自動封裝成集合 -->
<select id="findByUsername" resultType="com.xgf.mybatisdemo.bean.User">
select * from user where username like #{username};
</select>
<!-- 更新user資料 -->
<update id="updateUser" parameterType="com.xgf.mybatisdemo.bean.User">
update user set username=#{username},birthday=#{birthday},sex=#{sex},address=#{address} where id = #{id};
</update>
<delete id="deleteById" parameterType="int">
delete from user where id= #{id}
</delete>
(7)建立獲取sqlSession的工具類(封裝成util工具類)
//sqlSession工具類,獲取sqlSession
public class SqlSessionUtils {
//SqlSessionFactory物件
private static SqlSessionFactory sqlSessionFactory;
//static 靜態程式碼,在類載入的時候執行一次,且只執行一次
static{
//1. 建立SqlSessionFactoryBuilder物件
SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
//2. 載入mybatis-config.xml配置檔案 引數:核心配置檔案
InputStream inputStream = SqlSessionUtils.class.getClassLoader().getResourceAsStream("com/xgf/mybatisdemo/config/mybatis-config.xml");
//3. 建立SqlSessionFactory物件 載入核心配置檔案 引數:輸入流
sqlSessionFactory = sqlSessionFactoryBuilder.build(inputStream);
}
public static SqlSession getSession(){
// 4. 建立SqlSession物件 對資料庫進行操作
SqlSession sqlSession = sqlSessionFactory.openSession();
return sqlSession;
}
}
(8)建立測試類,測試對user的增刪查改
public class TestSqlSessionUtils {
private SqlSession sqlSession = null;
private UserMapper userMapper = null;
//@Before 在每個方法執行前獲取session
@Before
public void init(){
//通過SqlSessionUtils工具類獲取sqlSession
sqlSession = SqlSessionUtils.getSession();
userMapper = sqlSession.getMapper(UserMapper.class);
}
//測試查詢
@Test
public void test01(){
System.out.println("查詢user");
User user = userMapper.getUserById(2);
System.out.println(user);
}
//(對資料庫進行修改需要提交事務(insert、update、delete))
//測試增加
@Test
public void test02(){
// mybatis動態代理會自動生成userMapper的實現類,查詢sql,執行jdbc程式碼
System.out.println("增加user");
User user = new User(null,"新增username", Date.valueOf("2020-12-15"), 1, "湖南省張家界市");
userMapper.saveUser(user);
sqlSession.commit();
}
//測試刪除
@Test
public void test03(){
System.out.println("刪除id=1的user");
userMapper.deleteById(1);
//sqlSession執行資料更新(增加、刪除、修改)需要提交事務commit才會對資料庫進行修改,查詢不需要提交事務
sqlSession.commit();
}
//測試通過模糊查詢 username
@Test
public void test04(){
System.out.println("查詢使用者名稱中含有name的所有user");
List<User> userList = userMapper.findByUsername("%name%");
for(User user:userList){
System.out.println(user);
}
}
//測試更新
@Test
public void test05(){
System.out.println("更新id=7的資料");
int i = userMapper.updateUser(new User(7, "我更新了7的user", Date.valueOf("2020-2-22"), 2, "我的address在湖南"));
if(i>0){
sqlSession.commit();
System.out.println("更新了" + i + "條資料");
}else{
System.out.println(" id =7 的使用者不存在,資料更新失敗");
}
}
//每個方法執行之後執行
@After
public void destory(){
sqlSession.close();//關閉sqlSession
}
}
相關文章
- Mybatis新增&修改MyBatis
- mybatis plus 新增分頁外掛MyBatis
- mybatis 批量新增insert、更新update詳解MyBatis
- mybatis新增物件自動生成uuid方案MyBatis物件UI
- MySql新增使用者MySql
- 新增批次使用者
- mybatis入門程式:刪除、更新使用者&&hibernate和mybatis的區別MyBatis
- mySql 新增新使用者MySql
- RabbitMQ 新增新使用者MQ
- Vagrant 新增 root 使用者
- mybatis入門程式:向資料庫中新增使用者&&自增主鍵和非自增主鍵的返回MyBatis資料庫
- 新增多個使用者的shell指令碼指令碼
- mybatis入門程式:mybatis根據使用者名稱稱模糊查詢使用者資訊MyBatis
- MySQL新增使用者使用者與授權MySql
- Ubuntu-給新增使用者新增root許可權Ubuntu
- 快速為Windows新增使用者Windows
- layui使用者新增實現UI
- linux新增使用者和組Linux
- 給mybatis新增自動建表,自動加欄位的功能MyBatis
- 如何給Wondershare UniConverter的使用者新增檔案?
- 如何在 Linux 桌面新增使用者Linux
- CentOS 7 中新增新使用者CentOS
- AWS EKS 新增IAM使用者角色
- win10 如何新增使用者頭像_win10怎樣為使用者新增個性化的頭像Win10
- MySQL 給使用者新增 ALTER VIEW 的許可權MySqlView
- 新增使用者的發帖功能怎麼實現
- 新建使用者並將使用者新增到root使用者組內
- Linux下使用者的管理(使用者新增,刪除,查詢,切換等)Linux
- win10怎麼給桌面新增使用者資料夾_win10在桌面新增使用者檔案的教程Win10
- Mysql 建立資料庫\新增使用者\使用者授權MySql資料庫
- linux建立使用者並新增到sudo使用者組中Linux
- 教你玩轉Linux—新增批量使用者Linux
- 教你如何在Linux 桌面新增使用者Linux
- ue4新增使用者介面、UIUI
- 3. 批量新增多個使用者
- Linux基礎命令---新增使用者useraddLinux
- Linux基礎命令—新增使用者useraddLinux
- manjaro 新增當前使用者到kvmJAR