Mybatis實(shí)現(xiàn)增刪改查
一.mybatis的配置
1.1 添加相應(yīng)的jar包
在lib文件夾下面添加mybatis的核心jar包以及依賴(lài)的jar包
同在lib文件夾下面加入mysql的驅(qū)動(dòng)jar包

1.2 配置mybatis.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>
? <!-- 配置 properties文件-->
? <properties resource="db.properties"></properties>
?? ?<settings>
?? ??? ?<!-- 配置日志的輸出形式 -->
?? ??? ?<setting name="logImpl" value="LOG4J" />
?? ?</settings>
?? ?<!-- 配置數(shù)據(jù)庫(kù)的連接 默認(rèn)使用哪一個(gè)數(shù)據(jù)庫(kù)連接 -->
?? ?<environments default="mysql">
?? ??? ?<!-- 配置mysql -->
?? ??? ?<environment id="mysql">
?? ??? ??? ?<!-- 事務(wù)管理 使用JDBC -->
?? ??? ??? ?<transactionManager type="JDBC"></transactionManager>
?? ??? ??? ?<!-- type 連接屬性
?? ??? ??? ? UNPOOLED-這個(gè)類(lèi)型的數(shù)據(jù)源實(shí)現(xiàn)只是在每次需要的時(shí)候簡(jiǎn)單地打開(kāi)和關(guān)閉連接。
?? ??? ??? ? POOLED-這個(gè)數(shù)據(jù)源的實(shí)現(xiàn)緩存了JDBC 連接對(duì)象,用于避免每次創(chuàng)建新的數(shù)據(jù)庫(kù)連接時(shí)都初始 化和進(jìn)行認(rèn)證,加快程序響應(yīng)。并發(fā)WEB應(yīng)用通常通過(guò)這種做法來(lái)獲得快速響應(yīng)。
?? ??? ??? ?NDI- 這個(gè)數(shù)據(jù)源的配置是為了準(zhǔn)備與像gpring或應(yīng)用服務(wù)器能夠在外部或者內(nèi)部配置數(shù)據(jù) 源的容器一起使用,然后在NDI 上下文中引用它 -->
?? ??? ??? ?<dataSource type="POOLED">
?? ??? ??? ??? ?<property name="driver" value="${diver}" />
?? ??? ??? ??? ?<property name="url" value="${url}" />
?? ??? ??? ??? ?<property name="username" value="${username}" />
?? ??? ??? ??? ?<property name="password" value="${password}" />
?? ??? ??? ?</dataSource>
?? ??? ?</environment>
?? ?</environments>
?? ?<!-- 配置映射 -->
?? ?<mappers>
?? ??? ?<mapper resource="com/sxt/mapping/UserMapper.xml" />
?? ?</mappers>
</configuration>1.3 創(chuàng)建數(shù)據(jù)庫(kù)

注意:在設(shè)計(jì)數(shù)據(jù)庫(kù)時(shí),id的類(lèi)型為int并且設(shè)置為主鍵。自動(dòng)遞增。
1.4 創(chuàng)建實(shí)體類(lèi)
package com.sxt.domain;
public class User {
?? ?private Integer ?id;
?? ?private String ?name;
?? ?private String ?address;
?? ?private String ?sex;
?? ?
?? ?public User(){
?? ?}
?? ?//插入
?? ?public User(String name, String address, String sex) {
?? ??? ?super();
?? ??? ?this.name = name;
?? ??? ?this.address = address;
?? ??? ?this.sex = sex;
?? ?}
? ? //查詢(xún)
?? ?public User(Integer id, String name, String address, String sex) {
?? ??? ?super();
?? ??? ?this.id = id;
?? ??? ?this.name = name;
?? ??? ?this.address = address;
?? ??? ?this.sex = sex;
?? ?}
?? ?public Integer getId() {
?? ??? ?return id;
?? ?}
?? ?public void setId(Integer id) {
?? ??? ?this.id = id;
?? ?}
?? ?public String getName() {
?? ??? ?return name;
?? ?}
?? ?public void setName(String name) {
?? ??? ?this.name = name;
?? ?}
?? ?public String getAddress() {
?? ??? ?return address;
?? ?}
?? ?public void setAddress(String address) {
?? ??? ?this.address = address;
?? ?}
?? ?public String getSex() {
?? ??? ?return sex;
?? ?}
?? ?public void setSex(String sex) {
?? ??? ?this.sex = sex;
?? ?}
?? ?@Override
?? ?public String toString() {
?? ??? ?return "User [id=" + id + ", name=" + name + ", address=" + address + ", sex=" + sex + "]";
?? ?}
?? ?
?? ?
}1.5 創(chuàng)建接口實(shí)現(xiàn)的方法
package com.sxt.mapper;
import com.sxt.domain.User;
import java.util.List;
public interface UserMapper {
? ?public void add(User user);
? ?public void update(User user);
? ?public void delete(Integer id); //刪除的構(gòu)造方法
? ?public User queryById(Integer id);//查詢(xún)的構(gòu)造方法
? ?public List<User> queryAll();
? ?public List<User> queryLike(User user); //模糊查詢(xún)
}1.6 配置UserMapper.xml 文件
<?xml version="1.0" encoding="UTF-8"?>
<!-- 引入頭文件 -->
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.sxt.mapper.UserMapper"> ?<!-- namespace一般與Mapper接口的限定名一致 -->
? ? <!--添加?
? ? id對(duì)應(yīng)接口里面的方法名
? ? parameterType參數(shù)類(lèi)型
? ? ?-->
? ? <insert id="add" parameterType="com.sxt.domain.User">
? ? ?insert into user (name,address,sex) values(#{name},#{address},#{sex})
? ? </insert>
? ? <!-- 修改 -->
? ? <update id="update" parameterType="com.sxt.domain.User">
? ? ? update user set name=#{name},address=#{address},sex=#{sex} where id=#{id}
? ? </update>
? ? <!-- 刪除 -->
? ? <delete id="delete" parameterType="java.lang.Integer">
? ? ? ?delete form user where id=#{value}
? ? </delete>
? ? <!--查詢(xún)一個(gè) ?
? ? resultType返回值的類(lèi)型
? ? -->
? ? <select id="queryById" parameterType="java.lang.Integer" resultType="com.sxt.domain.User">
? ? ?select * from user where id=#{value}
? ? </select>
? ? <!-- 全查詢(xún) -->
? ? <select id="queryLike" resultType="com.sxt.domain.User">
? ? ?<!-- ?select * from user where name like #{name} -->
? ? ?select * from user where name like "%"#{name}"%"
? ? </select>
? ? <!-- 模糊查詢(xún) -->
</mapper>1.7 創(chuàng)建MybatisUtils的方法
package com.sxt.utils;
import java.io.InputStream;
import javax.websocket.Session;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class MybatisUtils {
?? ?static InputStream is=MybatisUtils.class.getResourceAsStream("/mybatis.xml");
?? ?//得到SqlSessionFactory
?? ?static SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(is);
?? ?//得到session
? ?public static SqlSession openSession() {
?? ? ? return factory.openSession();
? ?}
? ?//關(guān)閉session
? ?public static void closeSession(SqlSession session) {
?? ? ? //提交
?? ? ? session.commit();
?? ? ? //關(guān)閉
?? ? ? session.close();
?? ? ??
? ?}
}二、Mybatis的增刪改查
2.1 添加
package com.sxt.text;
import java.util.List;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import com.sxt.domain.User;
import com.sxt.mapper.UserMapper;
import com.sxt.utils.MybatisUtils;
public class mybatisTest {
? ? public static void main(String[] args) {
? ? ?? ?SqlSession session=MybatisUtils.openSession();
? ? ? ? UserMapper userMapper=session.getMapper(UserMapper.class);
?? ??? ?// TODO Auto-generated method stub
? ? ?? ? User user=new User("小花", "武漢", "男");
? ? ? ? ?userMapper.add(user);
? ? ? ? ?System.out.println("chen");
? ? ? ? ?MybatisUtils.closeSession(session);
?? ?}
2.2 修改
package com.sxt.text;
import java.util.List;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import com.sxt.domain.User;
import com.sxt.mapper.UserMapper;
import com.sxt.utils.MybatisUtils;
public class mybatisTest {
//?? ?SqlSession session=MybatisUtils.openSession();
// ? ?UserMapper userMapper=session.getMapper(UserMapper.class);
// ?@Test
//?? ?public void initData(){
? ? public static void main(String[] args) {
? ? ?? ?SqlSession session=MybatisUtils.openSession();
? ? ? ? UserMapper userMapper=session.getMapper(UserMapper.class);
?? ??? ?// TODO Auto-generated method stub
// ? ??? ? User user=new User("小明", "武漢", "男");
? ? ? ? User user=new User(2,"小花","河北","女");
? ? ? ? ?userMapper.update(user);
? ? ? ? ?MybatisUtils.closeSession(session);
?? ?}
2.3 查詢(xún)
package com.sxt.text;
import java.util.List;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import com.sxt.domain.User;
import com.sxt.mapper.UserMapper;
import com.sxt.utils.MybatisUtils;
public class mybatisTest {
//?? ?SqlSession session=MybatisUtils.openSession();
// ? ?UserMapper userMapper=session.getMapper(UserMapper.class);
// ?@Test
//?? ?public void initData(){
? ? public static void main(String[] args) {
? ? ?? ?SqlSession session=MybatisUtils.openSession();
? ? ? ? UserMapper userMapper=session.getMapper(UserMapper.class);
?? ??? ?// TODO Auto-generated method stub
// ? ??? ? User user=new User("小明", "武漢", "男");
? ? ? ? //User user=new User(2,"小花","河北","女");
? ? ? ? ?List<User> list=userMapper.queryAll();
? ? ? ? ?System.out.println(list);
? ? ? ? ?MybatisUtils.closeSession(session);
?? ?}
2.4 刪除
package com.sxt.text;
import java.util.List;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import com.sxt.domain.User;
import com.sxt.mapper.UserMapper;
import com.sxt.utils.MybatisUtils;
public class mybatisTest {
//?? ?SqlSession session=MybatisUtils.openSession();
// ? ?UserMapper userMapper=session.getMapper(UserMapper.class);
// ?@Test
//?? ?public void initData(){
? ? public static void main(String[] args) {
? ? ?? ?SqlSession session=MybatisUtils.openSession();
? ? ? ? UserMapper userMapper=session.getMapper(UserMapper.class);
?? ??? ?// TODO Auto-generated method stub
// ? ??? ? User user=new User("小明", "武漢", "男");
? ? ? ? //User user=new User(2,"小花","河北","女");
? ? ? ? // List<User> list=userMapper.queryAll();
? ? ? ? ?//System.out.println(list);
? ? ? ? userMapper.delete(3);
? ? ? ? ?MybatisUtils.closeSession(session);
?? ?}
到此這篇關(guān)于Mybatis實(shí)現(xiàn)增刪改查的文章就介紹到這了,更多相關(guān)Mybatis增刪改查內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
淺談java 中文件的讀取File、以及相對(duì)路徑的問(wèn)題
今天小編就為大家分享一篇淺談java 中文件的讀取File、以及相對(duì)路徑的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-07-07
Post請(qǐng)求參數(shù)是數(shù)組或者List時(shí)的請(qǐng)求處理方式
這篇文章主要介紹了Post請(qǐng)求參數(shù)是數(shù)組或者List時(shí)的請(qǐng)求處理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05
基于Spring Boot使用JpaRepository刪除數(shù)據(jù)時(shí)的注意事項(xiàng)
這篇文章主要介紹了Spring Boot使用JpaRepository刪除數(shù)據(jù)時(shí)的注意事項(xiàng),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06
Springboot與vue實(shí)現(xiàn)文件導(dǎo)入方法具體介紹
文件導(dǎo)入時(shí)大多數(shù)項(xiàng)目無(wú)法回避的問(wèn)題,這兩天深入學(xué)習(xí)了文件導(dǎo)入,在這里進(jìn)行記錄,使用到的技術(shù)是Springboot+Vue,前端組件使用el-upload2023-02-02
Java并發(fā)教程之volatile關(guān)鍵字詳解
這篇文章主要給大家介紹了關(guān)于Java并發(fā)教程之volatile關(guān)鍵字的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Java具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11
基于Properties實(shí)現(xiàn)配置數(shù)據(jù)庫(kù)驅(qū)動(dòng)
這篇文章主要介紹了基于Properties實(shí)現(xiàn)配置數(shù)據(jù)庫(kù)驅(qū)動(dòng),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05
Spring Boot 項(xiàng)目啟動(dòng)失敗的解決方案
這篇文章主要介紹了Spring Boot 項(xiàng)目啟動(dòng)失敗的解決方案,幫助大家更好的理解和學(xué)習(xí)使用Spring Boot,感興趣的朋友可以了解下2021-03-03
Java實(shí)現(xiàn)飛機(jī)大戰(zhàn)游戲?附完整源碼
這篇文章主要介紹了Java實(shí)現(xiàn)飛機(jī)大戰(zhàn)游戲,本文給大家分享完整源代碼和效果圖展示,對(duì)java飛機(jī)大戰(zhàn)游戲?qū)崿F(xiàn)代碼感興趣的朋友一起看看吧2022-05-05
JAVA操作HDFS案例的簡(jiǎn)單實(shí)現(xiàn)
本篇文章主要介紹了JAVA操作HDFS案例的簡(jiǎn)單實(shí)現(xiàn),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-08-08

