MyBatis框架搭建及增刪改查操作
一.搭建好myBatis的環境
1.引入jar包
(1).mybatis-3.2.7jar核心jar
(2).mysql核心jar
(3).junit-4.9.jar
2.建立mybatis全域性配置檔案SqlMapConfig.xm(名字自定義)
配置了資料來源、事務等mybatis執行環境,配置對映檔案(配置sql語句)
3.mapper代理開發對映檔案User.xml
4.目錄結構如下
二.增刪改查基本操作
1.配置myBatis全域性配置檔案
<?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>
<!-- 和spring整合後 environments配置將廢除-->
<environments default="development">
<environment id="development">
<!-- 使用jdbc事務管理,事務的控制有mybatis-->
<transactionManager type="JDBC" />
<!-- 資料庫連線池,由mybatis管理-->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8" />
<property name="username" value="root" />
<property name="password" value="fxq123" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="sqlmap/User.xml"/>
</mappers>
</configuration>
2.配置User.xml對映,將sql語句封裝到mappedStatement物件中,進行增刪改查
<?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">
<!-- namespace名稱空間,作用就是對sql進行分類化管理,理解sql隔離 注意:使用mapper程式碼方法開發,namespace有特殊重要的作用 -->
<mapper namespace="test">
<!-- 在對映檔案中配置很多sql語句 -->
<!-- 需求:通過id查詢使用者表的記錄 -->
<!-- 通過select執行資料庫的查詢 -->
<!-- id:標識對映檔案中的sql -->
<!-- 將sql語句封裝到mappedStatement物件中,所以將id成為statement 的id -->
<select id="findUserById" parameterType="int"
resultType="cn.itcast.mybatis.po.User">
select * from USER where id = #{id}
</select>
<!-- 自定義條件查詢使用者列表 -->
<!-- resultType:指定就是單條記錄所對映的java物件型別 -->
<select id="findUserByName" parameterType="java.lang.String"
resultType="cn.itcast.mybatis.po.User">
select * from USER where username like '%${value}%'
</select>
<!-- 新增使用者 parameterType:指定輸入引數型別是pojo(包括:使用者資訊) #{}中指定pojo的屬性名,接收到pojo物件的屬性值,mybatis通過OGNL獲取物件的屬性值; -->
<insert id="insertUser" parameterType="cn.itcast.mybatis.po.User">
<selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer">
SELECT
LAST_INSERT_ID()
</selectKey>
insert into USER (id,username,birthday,sex,address)
values(#{id},#{username},#{birthday},#{sex},#{address})
</insert>
<!-- 刪除 -->
<delete id="deleteUser" parameterType="java.lang.Integer">
delete from USER WHERE id
= #{id}
</delete>
<!-- 更新 -->
<update id="updateUser" parameterType="cn.itcast.mybatis.po.User">
update USER set username =
#{username},birthday=#{birthday},sex=#{sex},address=#{address} where
id = #{id}
</update>
</mapper>
3.根據Mybatis框架結構,在java程式碼中建立sqlSession 執行程式。
</pre></p><p><pre name="code" class="java">package cn.itcast.mybatis.first;
import java.io.IOException;
import java.io.InputStream;
import java.util.Date;
import java.util.List;
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 cn.itcast.mybatis.po.User;
/**
* 入門程式 2016年9月21日14:46:51
*
* @author fxq
*
*/
public class MybatisFirst {
//獲得SqlSession
public SqlSession getSqlSession() throws IOException {
// mybastis配置檔案
String resource = "SqlMapConfig.xml";
// 得到配置檔案流
InputStream impuStream = Resources.getResourceAsStream(resource);
// 建立會話工廠
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder()
.build(impuStream);
// 通過工廠得到sqlSession
SqlSession sqlSession = sqlSessionFactory.openSession();
return sqlSession;
}
// 根據id查詢使用者資訊,得到一條記錄結果
@Test
public void findUserByIdTest() throws IOException {
//獲得SqlSession
SqlSession sqlSession=getSqlSession();
// 通過sqlSession運算元據庫
// 第一個引數:對映檔案中的statement的id,等於=namespace+"."+statement的id;
// 第二個引數:指定和對映檔案所匹配的parameterType型別的引數
// sqlSession.selectOne結果是與對映檔案中的所匹配的resultType型別的物件;
User user = sqlSession.selectOne("test.findUserById", 1);
System.out.println(user);
// 釋放資源
sqlSession.close();
}
/**
* 模糊查詢
*
* @throws IOException
*/
@Test
public void findUserbyNameTest() throws IOException {
//獲得SqlSession
SqlSession sqlSession=getSqlSession();
// List中的user和對映檔案中resultType所指定的型別一直
List<User> userList = sqlSession
.selectList("test.findUserByName", "小明");
System.out.println(userList);
sqlSession.close();
}
/**
* 插入資料
*
* @throws IOException
*/
@Test
public void insertUserTest() throws IOException {
//獲得SqlSession
SqlSession sqlSession=getSqlSession();
// 插入使用者物件
// 新增使用者資訊
User user = new User();
user.setUsername("張小明");
user.setBirthday(new Date());
user.setSex("1");
user.setAddress("河南鄭州");
sqlSession.insert("test.insertUser", user);
// 提交
sqlSession.commit();
System.out.println(user.getId());
sqlSession.close();
}
/**
* 刪除使用者
*
* @throws IOException
*/
@Test
public void deleteUserTest() throws IOException {
//獲得SqlSession
SqlSession sqlSession=getSqlSession();
sqlSession.delete("test.deleteUser", 31);
// 提交
sqlSession.commit();
sqlSession.close();
}
/**
* 更新使用者
*
* @throws IOException
*/
@Test
public void updateUserTest() throws IOException {
//獲得SqlSession
SqlSession sqlSession=getSqlSession();
User user = new User();
user.setId(28);
user.setBirthday(new Date());
user.setUsername("範曉權");
user.setAddress("河北省雞澤縣");
user.setSex("2");
sqlSession.update("test.updateUser", user);
sqlSession.commit();
sqlSession.close();
}
}
三.總結:
MyBatis 是支援普通 SQL查詢,儲存過程和高階對映的優秀持久層框架。MyBatis 消除了幾乎所有的JDBC程式碼和引數的手工設定以及結果集的檢索。MyBatis 使用簡單的 XML或註解用於配置和原始對映,將介面和 Java 的POJOs(Plain Old Java Objects,普通的 Java物件)對映成資料庫中的記錄。
相關文章
- 使用mybatis開發的增刪改查操作MyBatis
- Mybatis的增刪改查MyBatis
- mybatis中的增刪改操作MyBatis
- MongoDB增刪改查操作MongoDB
- 表的建立修改及增刪改查-DML操作
- PHP操作MongoDB(增刪改查)PHPMongoDB
- 增刪改查框架的疑問框架
- 一個系列搞定MyBatis:MyBatis快速上手增刪改查MyBatis
- mysql資料增刪改查操作MySql
- MySQL基礎操作(增刪改查)MySql
- JS字串操作之增刪改查JS字串
- 資料庫操作增刪改查模糊查資料庫
- springboot整合mybatis增刪改查(三):mybatis逆向工程Spring BootMyBatis
- jquery基本操作增刪改查有哪些?jQuery
- JavaAPI操作MongoDB--基本增刪改查JavaAPIMongoDB
- 增刪改查
- SpringBoot+Mybatis增刪改查實戰Spring BootMyBatis
- MyBatis初級實戰之二:增刪改查MyBatis
- Mybatis-plus實現簡單增刪改查MyBatis
- Mybatis1.0——框架入門,從0到簡單增刪改查資料MyBatis框架
- 用thinkphp進行增刪改查的操作PHP
- iOS操作屬性列表plist(增刪改查)iOS
- 第一個mybatis程式,實現增刪改查CRUDMyBatis
- mybatis實現MySQL資料庫的增刪改查MyBatisMySql資料庫
- indexedDB 增刪改查Index
- SQL增刪改查SQL
- mysql增刪改查MySql
- Mongoose查增改刪Go
- FMDB增刪改查
- mysql增查刪改MySql
- 搭建頁面:資料庫的增刪改查資料庫
- Java實現簡單的增刪改查操作Java
- YII1 增、刪、改、查資料庫操作資料庫
- imutable.js常用增刪改查操作說明JS
- 安卓開發SQLite增刪改查操作例項安卓SQLite
- Python操作SQLServer資料庫增刪改查PythonSQLServer資料庫
- SQLAlchemy - 模組檔案以及增刪改查(CURD操作)SQL
- (一)Mybatis基本配置,Statement方式,動態代理增刪改查MyBatis