mybatis之增刪改查
jar包需要三個(gè) 連接數(shù)據(jù)庫(kù)的以及mybatis的jar包
下面創(chuàng)建數(shù)據(jù)庫(kù) 復(fù)制到一個(gè)文檔里面導(dǎo)入數(shù)據(jù)庫(kù)即可
/* Navicat MySQL Data Transfer Source Server : localhost_3306 Source Server Version : 50731 Source Host : localhost:3306 Source Database : ssm_dome_tingche01 Target Server Type : MYSQL Target Server Version : 50731 File Encoding : 65001 Date: 2021-07-12 16:49:15 */ SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- Table structure for tbl_parking -- ---------------------------- DROP TABLE IF EXISTS `tbl_parking`; CREATE TABLE `tbl_parking` ( `pId` int(11) NOT NULL AUTO_INCREMENT, `carNo` varchar(50) DEFAULT NULL, `pMark` varchar(20) DEFAULT NULL, PRIMARY KEY (`pId`) ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of tbl_parking -- ---------------------------- INSERT INTO `tbl_parking` VALUES ('1', ' 浙A88888', '123456'); INSERT INTO `tbl_parking` VALUES ('2', '京A88888', '123456'); INSERT INTO `tbl_parking` VALUES ('3', '豫A88888', '123456'); INSERT INTO `tbl_parking` VALUES ('4', '貴A88888', '124566'); INSERT INTO `tbl_parking` VALUES ('5', '莞A88888', '123456'); -- ---------------------------- -- Table structure for tbl_parking_detail -- ---------------------------- DROP TABLE IF EXISTS `tbl_parking_detail`; CREATE TABLE `tbl_parking_detail` ( `pdId` int(11) NOT NULL AUTO_INCREMENT, `pId` int(11) DEFAULT NULL, `beginDate` datetime NOT NULL, `endDate` datetime DEFAULT NULL, `pDur` int(11) DEFAULT NULL, `pCost` float DEFAULT NULL, `pName` varchar(11) DEFAULT NULL, PRIMARY KEY (`pdId`) ) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of tbl_parking_detail -- ---------------------------- INSERT INTO `tbl_parking_detail` VALUES ('2', '2', '2019-05-15 17:06:30', '2019-05-15 19:06:30', '2', '30', '張四'); INSERT INTO `tbl_parking_detail` VALUES ('3', '3', '2019-05-15 17:06:30', '2019-05-15 20:06:30', '1', '50', '李四'); INSERT INTO `tbl_parking_detail` VALUES ('4', '4', '2021-07-12 10:57:25', '2021-07-14 14:17:52', '48', '200', '趙四'); INSERT INTO `tbl_parking_detail` VALUES ('5', '5', '2021-07-22 14:17:37', '2021-07-23 14:17:40', '1', '5', '趙雲(yún)'); INSERT INTO `tbl_parking_detail` VALUES ('6', '1', '2019-05-15 17:06:30', '2019-05-15 18:06:30', '1', '11', 'dd');
mybatisUtils文件
package cn.hp.util; import java.io.IOException; import java.io.InputStream; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; public class MybatisUtils { private static SqlSessionFactory sessionFactory; static{ String resource="mybatis.xml"; try { InputStream is=Resources.getResourceAsStream(resource); sessionFactory=new SqlSessionFactoryBuilder().build(is); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static SqlSession getSession(){ return sessionFactory.openSession(); } public static void closeSession(SqlSession session){ if(session!=null){ session.close(); } } }
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> <typeAliases> <package name="cn.hp.model"/> </typeAliases> <environments default="mysql"> <environment id="mysql"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/ssm_dome_tingche01?characterEncoding=utf8"/> <property name="username" value="root"/> <property name="password" value="123456"/> </dataSource> </environment> </environments> <mappers> <mapper resource="cn/hp/dao/ParkingMapper.xml"></mapper> </mappers> </configuration>
ParkingMapp接口
package cn.hp.dao; import cn.hp.model.ParkingInfo; import org.apache.ibatis.annotations.Param; import java.util.List; import java.util.Map; public interface ParkingMapper { public List<ParkingInfo> findAll(); //查詢大於某個(gè)車費(fèi)大於30的車 public List<ParkingInfo> findPCost(int pCost); //查詢某個(gè)停車信息 public ParkingInfo findById(String id); //根據(jù)車主名稱模糊查詢 public List<ParkingInfo> findParkName(String name); //查詢大於某個(gè)車費(fèi)大於30的車 以及車主姓名模糊查詢 public List<ParkingInfo> findPark(@Param("pCost")float pCost,@Param("pName")String pName); //Map接受 public List<ParkingInfo> findParkByMap(Map<String, Object> map); //刪除某個(gè)信息 public int deletePark(int pdid); //修改某個(gè)信息 public int update(ParkingInfo pi); //添加一條數(shù)據(jù) public int add(ParkingInfo pi); }
ParkingMapper.xml文件為增刪改查sql語(yǔ)句
<?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="cn.hp.dao.ParkingMapper"> <resultMap id="parkingList" type="cn.hp.model.ParkingInfo"> <result property="pdid" column="pdid"></result> <result property="pid" column="pid"></result> <result property="beginDate" column="beginDate"></result> <result property="endDate" column="endDate"></result> <result property="pDur" column="pDur"></result> <result property="pCost" column="pCost"></result> <result property="pName" column="pName"></result> <result property="carNo" column="carNo"></result> </resultMap> <select id="findAll" resultMap="parkingList"> select d.*,p.carNo from tbl_parking_detail d,tbl_parking p where d.pid=p.pid </select> <select id="findPCost" parameterType="int" resultType="cn.hp.model.ParkingInfo"> select * from tbl_parking_detail where pCost>#{pCost} </select> <select id="findById" parameterType="String" resultType="cn.hp.model.ParkingInfo"> select * from tbl_parking_detail where pdid=#{pdid} </select> <select id="findParkName" resultType="cn.hp.model.ParkingInfo"> select * from tbl_parking_detail where pName like '%${pName}%' </select> <select id="findPark" resultType="cn.hp.model.ParkingInfo"> select * from tbl_parking_detail where pName like '%${pName}%' and pCost>#{pCost} </select> <select id="findParkByMap" parameterType="map" resultType="cn.hp.model.ParkingInfo"> select * from tbl_parking_detail where pDur=#{pDur} and pCost>#{pCost} </select> <delete id="deletePark" parameterType="cn.hp.model.ParkingInfo" > delete from tbl_parking_detail where pdid=#{pdid} </delete> <update id="update" parameterType="cn.hp.model.ParkingInfo"> update tbl_parking_detail set pName =#{pName} where pdid=#{pdid} </update> <insert id="add" parameterType="cn.hp.model.ParkingInfo"> insert into tbl_parking_detail values (null,#{pid},#{beginDate},#{endDate},#{pDur},#{pCost},#{pName}) </insert> </mapper>
model類ParkingInfo
package cn.hp.model; public class ParkingInfo { public int pdid; public int pid; public String beginDate; public String endDate; public int pDur; public String pName; public float pCost; public String carNo; public int getPdid() { return pdid; } public void setPdid(int pdid) { this.pdid = pdid; } public ParkingInfo(int pid, String beginDate, String endDate, int pDur, String pName, float pCost, String carNo) { this.pid = pid; this.beginDate = beginDate; this.endDate = endDate; this.pDur = pDur; this.pName = pName; this.pCost = pCost; this.carNo = carNo; } @Override public String toString() { return "ParkingInfo{" + "pdid=" + pdid + ", pid=" + pid + ", beginDate='" + beginDate + '\'' + ", endDate='" + endDate + '\'' + ", pDur=" + pDur + ", pName='" + pName + '\'' + ", pCost=" + pCost + ", carNo='" + carNo + '\'' + '}'; } public int getPid() { return pid; } public void setPid(int pid) { this.pid = pid; } public String getBeginDate() { return beginDate; } public void setBeginDate(String beginDate) { this.beginDate = beginDate; } public String getEndDate() { return endDate; } public void setEndDate(String endDate) { this.endDate = endDate; } public int getpDur() { return pDur; } public void setpDur(int pDur) { this.pDur = pDur; } public String getpName() { return pName; } public void setpName(String pName) { this.pName = pName; } public float getpCost() { return pCost; } public void setpCost(float pCost) { this.pCost = pCost; } public String getCarNo() { return carNo; } public void setCarNo(String carNo) { this.carNo = carNo; } public ParkingInfo(int pdid, int pid, String beginDate, String endDate, int pDur, String pName, float pCost, String carNo) { this.pdid = pdid; this.pid = pid; this.beginDate = beginDate; this.endDate = endDate; this.pDur = pDur; this.pName = pName; this.pCost = pCost; this.carNo = carNo; } public ParkingInfo() { } }
最后就是測(cè)試類了:
package cn.hp.test; import cn.hp.dao.ParkingMapper; import cn.hp.model.ParkingInfo; import cn.hp.util.MybatisUtils; import org.apache.ibatis.session.SqlSession; import java.util.HashMap; import java.util.List; import java.util.Map; public class Test01 { public static void main(String[] args) { // test1(); // test2(); // test3(); // test4(); // test5(); // test6(); // test7(); // test8(); test9(); } private static void test9() { SqlSession session =MybatisUtils.getSession(); int i= session.getMapper(ParkingMapper.class).add(new ParkingInfo(1,"2019-05-15-17:06:30","2019-05-15-18:06:30",1,"dd",11,"sss")); if (i>0){ System.out.println("修改ok"); } session.commit(); } private static void test8(){ SqlSession session =MybatisUtils.getSession(); ParkingInfo pi= session.getMapper(ParkingMapper.class).findById("2"); pi.setpName("張四"); int result=session.getMapper(ParkingMapper.class).update(pi); if (result>0){ System.out.println("修改ok"); } session.commit(); } private static void test7() { SqlSession session =MybatisUtils.getSession(); int result= session.getMapper(ParkingMapper.class).deletePark(1); if (result>0){ System.out.println("刪除ok"); } session.commit(); } private static void test6() { SqlSession session =MybatisUtils.getSession(); Map<String, Object> map = new HashMap<String, Object>(); map.put("pDur",1); map.put("pCost",30); List<ParkingInfo> parkingInfoList= session.getMapper(ParkingMapper.class).findParkByMap(map); for (ParkingInfo s:parkingInfoList){ System.out.println(s.getpCost()+"\t"+s.getpName()); } } private static void test5() { SqlSession session =MybatisUtils.getSession(); List<ParkingInfo> parkingInfoList= session.getMapper(ParkingMapper.class).findPark(30,"趙"); for (ParkingInfo s:parkingInfoList){ System.out.println(s.getpCost()+"\t"+s.getpName()); } } private static void test4() { SqlSession session =MybatisUtils.getSession(); List<ParkingInfo> parkingInfoList= session.getMapper(ParkingMapper.class).findParkName("四"); for (ParkingInfo s:parkingInfoList){ System.out.println(s.getPdid()+"\t"+s.getpName()); } } private static void test3() { SqlSession session =MybatisUtils.getSession(); ParkingInfo si= session.getMapper(ParkingMapper.class).findById("2"); System.out.println(si.getPdid()+"\t"+si.getPid()+"\t"+si.beginDate+"\t"+si.endDate+"\t"+si.pDur+"\t"+si.pCost); } private static void test2() { SqlSession session =MybatisUtils.getSession(); List<ParkingInfo> parkingInfoList= session.getMapper(ParkingMapper.class).findPCost(30); for (ParkingInfo s:parkingInfoList){ System.out.println(s.getPdid()+"\t"+s.getpCost()); } } private static void test1() { SqlSession session =MybatisUtils.getSession(); List<ParkingInfo> parkingInfoList= session.getMapper(ParkingMapper.class).findAll(); for (ParkingInfo s:parkingInfoList){ System.out.println(s.getPdid()+"\t"+s.getCarNo()); } } }
總結(jié)
本篇文章就到這里了,希望能給你帶來(lái)幫助,也希望你能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
java編程創(chuàng)建型設(shè)計(jì)模式工廠方法模式示例詳解
這篇文章主要為大家介紹了java編程創(chuàng)建型設(shè)計(jì)模式之工廠方法模式的創(chuàng)建及案例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助2022-02-02Java將CSV的數(shù)據(jù)發(fā)送到kafka的示例
這篇文章主要介紹了Java將CSV的數(shù)據(jù)發(fā)送到kafka得示例,幫助大家更好得理解和使用Java,感興趣的朋友可以了解下2020-11-11SpringMVC實(shí)現(xiàn)controller中獲取session的實(shí)例代碼
本篇文章主要介紹了SpringMVC實(shí)現(xiàn)controller中獲取session的實(shí)例代碼,具有一定的參考價(jià)值,有興趣的可以了解一下。2017-02-02Java中實(shí)現(xiàn)接口與繼承的區(qū)別及說(shuō)明
這篇文章主要介紹了Java中實(shí)現(xiàn)接口與繼承的區(qū)別及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-03-03Spring boot 應(yīng)用實(shí)現(xiàn)動(dòng)態(tài)刷新配置詳解
這篇文章主要介紹了spring boot 配置動(dòng)態(tài)刷新實(shí)現(xiàn)詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2021-09-09springboot動(dòng)態(tài)定時(shí)任務(wù)的實(shí)現(xiàn)方法示例
這篇文章主要給大家介紹了關(guān)于springboot動(dòng)態(tài)定時(shí)任務(wù)的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02Spring Boot 通過(guò) Mvc 擴(kuò)展方便進(jìn)行貨幣單位轉(zhuǎn)換的代碼詳解
這篇文章主要介紹了Spring Boot 通過(guò) Mvc 擴(kuò)展方便進(jìn)行貨幣單位轉(zhuǎn)換,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12