mybatis增刪改操作
阿新 • • 發佈:2021-01-11
1 增(插入操作)
(1)插入語句使用insert標籤
(2)在對映檔案中使用parameterType屬性指定要插入的資料型別
(3)SQL語句中使用#{實體屬性名}方式引用實體中的屬性值
(4)插入操作使用的API是sqlSession.insert("名稱空間.id", 實體物件)
(5)插入操作涉及資料庫資料變化,所以要使用sqlSession物件顯式地提交事務,即sqlSession.commit(),而查詢操作不需要提交事務。mybaitis中預設事務是不提交的,而jdbc預設提交。
完整的程式碼:
mysql修改欄位型別
alter table user modify column password varchar(40) not null;
原來設定password是int型別,後面根據需要進行了修改
USE test; create table `user` ( `id` int not null , `username` varchar(40) not null , `password` int not null, primary key (`id`) ) ENGINE = INNODB DEFAULT charset = utf8; insert into user(id, username, password) VALUES (1,'zhangsan',123); insert into user(id, username, password) VALUES (2,'lisi',123); insert into user(id, username, password) VALUES (3,'wangwu',123); insert into user(id, username, password) VALUES (4,'zhaoliu',123); insert into user(id, username, password) VALUES (5,'tianqi',123); alter table user modify id int auto_increment; insert into user (id, username, password) values (null, 'yanjiu', 456); alter table user modify column password varchar(40) not null;
userMapper.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="userMapper"> <!-- 插入操作--> <insert id="save" parameterType="com.company.domain.User">insert into user values (#{id}, #{username}, #{password}); </insert> <!-- 查詢操作--> <select id="findAll" resultType="com.company.domain.User"> select * from user </select> </mapper>
MyBatisTest.java
/* * Copyright (c) Huawei Technologies Co., Ltd. 2021-2021. All rights reserved. */ package com.company.test; import com.company.domain.User; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import org.junit.Test; import java.io.IOException; import java.io.InputStream; import java.util.List; public class MyBatisTest { @Test public void test2() throws IOException { // 模擬user物件 User user = new User(); user.setUsername("tom"); user.setPassword("abc"); // 獲得核心配置檔案 InputStream resourceAsStream = Resources.getResourceAsStream("sqlMapConfig.xml"); // 獲得session工廠物件 SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream); // 獲得session會話物件 SqlSession sqlSession = sqlSessionFactory.openSession(); // 執行插入操作 sqlSession.insert("userMapper.save", user); // mybatis執行更新操作 ,預設是不提交的,需要手動提交事務 sqlSession.commit(); // 釋放資源 sqlSession.close(); } @Test public void test1() throws IOException { // 獲得核心配置檔案 InputStream resourceAsStream = Resources.getResourceAsStream("sqlMapConfig.xml"); // 獲得session工廠物件 SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream); // 獲得session會話物件 SqlSession sqlSession = sqlSessionFactory.openSession(); // 執行操作,引數:namespace+id List<User> userList = sqlSession.selectList("userMapper.findAll"); // 列印資料 System.out.println(userList); // 釋放資源 sqlSession.close(); } }
其他的配置,可以看這篇:https://www.cnblogs.com/GumpYan/p/14248550.html