Mybatis實(shí)現(xiàn)增刪改查
一.mybatis的配置
1.1 添加相應(yīng)的jar包
在lib文件夾下面添加mybatis的核心jar包以及依賴的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è)類型的數(shù)據(jù)源實(shí)現(xiàn)只是在每次需要的時(shí)候簡(jiǎn)單地打開和關(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)用通常通過這種做法來獲得快速響應(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的類型為int并且設(shè)置為主鍵。自動(dòng)遞增。
1.4 創(chuàng)建實(shí)體類
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; ?? ?} ? ? //查詢 ?? ?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);//查詢的構(gòu)造方法 ? ?public List<User> queryAll(); ? ?public List<User> queryLike(User user); //模糊查詢 }
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ù)類型 ? ? ?--> ? ? <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> ? ? <!--查詢一個(gè) ? ? ? resultType返回值的類型 ? ? --> ? ? <select id="queryById" parameterType="java.lang.Integer" resultType="com.sxt.domain.User"> ? ? ?select * from user where id=#{value} ? ? </select> ? ? <!-- 全查詢 --> ? ? <select id="queryLike" resultType="com.sxt.domain.User"> ? ? ?<!-- ?select * from user where name like #{name} --> ? ? ?select * from user where name like "%"#{name}"%" ? ? </select> ? ? <!-- 模糊查詢 --> </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 查詢
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)文章希望大家以后多多支持腳本之家!
- Mybatis注解增刪改查的實(shí)例代碼
- Oracle + mybatis實(shí)現(xiàn)對(duì)數(shù)據(jù)的簡(jiǎn)單增刪改查實(shí)例代碼
- Spring boot + mybatis + Vue.js + ElementUI 實(shí)現(xiàn)數(shù)據(jù)的增刪改查實(shí)例代碼(二)
- Spring boot + mybatis + Vue.js + ElementUI 實(shí)現(xiàn)數(shù)據(jù)的增刪改查實(shí)例代碼(一)
- Mybatis實(shí)現(xiàn)數(shù)據(jù)的增刪改查實(shí)例(CRUD)
- 簡(jiǎn)述Mybatis增刪改查實(shí)例代碼
- Mybatis實(shí)現(xiàn)增刪改查(CRUD)實(shí)例代碼
- SpringBoot整合MybatisPlus實(shí)現(xiàn)增刪改查功能
- Mybatis步驟分解實(shí)現(xiàn)一個(gè)增刪改查程序
相關(guān)文章
Java基礎(chǔ)教程之八大基本數(shù)據(jù)類型
這篇文章主要給大家介紹了關(guān)于Java基礎(chǔ)教程之八大基本數(shù)據(jù)類型的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06java實(shí)現(xiàn)圖片上加文字水印(SpringMVC + Jsp)
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)在圖片上加文字水印的方法,水印可以是圖片或者文字,操作方便,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-05-05Mybatis查詢語(yǔ)句返回對(duì)象和泛型集合的操作
這篇文章主要介紹了Mybatis查詢語(yǔ)句返回對(duì)象和泛型集合的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07java實(shí)現(xiàn)簡(jiǎn)單QQ登錄界面
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)簡(jiǎn)單QQ登錄界面,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-05-05Java微信公眾平臺(tái)開發(fā)(12) 微信用戶信息的獲取
這篇文章主要為大家詳細(xì)介紹了Java微信公眾平臺(tái)開發(fā)第十二步,微信用戶信息的獲取,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04Spring Security保護(hù)用戶密碼常用方法詳解
這篇文章主要介紹了Spring Security保護(hù)用戶密碼常用方法詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09MyBatis-Plus中SimpleQuery查詢實(shí)現(xiàn)
本文主要介紹了MyBatis-Plus中SimpleQuery查詢實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08centos7如何通過systemctl啟動(dòng)springboot服務(wù)代替java -jar方式啟動(dòng)
這篇文章主要介紹了centos7如何通過systemctl啟動(dòng)springboot服務(wù)代替java -jar方式啟動(dòng),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2024-01-01java關(guān)鍵字static學(xué)習(xí)心得
本篇文章給大家分享一篇關(guān)于java關(guān)鍵字static的學(xué)習(xí)心得,有這方面需要的朋友學(xué)習(xí)下吧。2018-01-01