第二弹:Mybatis实现CRUD的操作(Demo练习) 朱雀 2021-09-09 02:40 306阅读 0赞 > 今天通过练习,学会了结合Mybatis框架对数据库进行简单CEUD的操作,在此记录一下。 **什么是CRUD? ** CRUD是指在做计算处理时的**增加(Create)**、**读取查询(Retrieve)**、**更新(Update)**和**删除(Delete)**几个单词的首字母简写。主要被用在描述软件系统中DataBase或者持久层的基本操作功能。 练习操作的表:stu ![20210719223933163.png][] ![20210719223955409.png][] 创建maven项目后,如下(用到的文件已经红色方框画出) ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDEwNzE0MA_size_16_color_FFFFFF_t_70][] 重要文件的内容如下: **pom.xml文件** <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.lys</groupId> <artifactId>mybatis-demo1</artifactId> <version>1.0-SNAPSHOT</version> <name>demo</name> <!-- FIXME change it to the project's website --> <url>http://www.example.com</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.6</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <!--这个MySQL版本要跟自己家电脑装的mysql版本一致,否则后面报错--> <version>8.0.17</version> </dependency> </dependencies> <build> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.properties </include> <include>**/*.xml</include> </includes> <filtering>false</filtering> </resource> </resources> </build> </project> **src\\main\\resources下的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> <!--数据库连接信息--> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="com.mysql.cj.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/ems?useSSL=FALSE&serverTimezone=Asia/Shanghai"/> <property name="username" value="root"/> <property name="password" value="root"/> </dataSource> </environment> </environments> <!--sql映射文件的位置位置信息--> <mappers> <!--有多个继续往下写--> <mapper resource="com/pojo/Dao/stuDao.xml"/> </mappers> </configuration> **src\\main\\java\\com\\utils\\mybatisUtils.java** package com.utils; 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 java.io.IOException; import java.io.InputStream; public class mybatisUtils { private static SqlSessionFactory factory; static { // 定义主配置文件的名称,从类路径的跟开始(target/classes) String config = "mybatis.xml"; // 读取文件 InputStream in = null; try { in = Resources.getResourceAsStream(config); } catch (IOException e) { e.printStackTrace(); } // 创建SqlSessionFactoryBuilder对象 SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder(); // 创建SqlSessionFactory对象 factory = builder.build(in); } public static SqlSession getSqlSession(){ return factory.openSession(); } } **src\\main\\java\\com\\pojo\\Dao\\stuDao.java** package com.pojo.Dao; import com.pojo.pp1.stu; import java.util.List; public interface stuDao { // 查询全部学生 public List<stu> selectstu(); // 用ID查询学生 public stu findstuByID(int id); // 添加学生 public int addstu(stu stu); // 删除学生信息 public int deletestuById(int id); // 修改学生信息 public int updatestu(stu stu); } **src\\main\\java\\com\\pojo\\Dao\\stuDao.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="com.pojo.Dao.stuDao"> <select id="selectstu" resultType="com.pojo.pp1.stu"> select ID,name from stu </select> <!--通过ID查询学生信息--> <select id="findstuByID" parameterType="int" resultType="com.pojo.pp1.stu"> select ID,name from stu where id=#{id} </select> <!--添加学生--> <insert id="addstu" parameterType="com.pojo.pp1.stu"> insert into stu(ID,name) values (#{ID},#{name}) </insert> <!--删除学生信息--> <delete id="deletestuById" parameterType="int" > delete from stu where ID=#{id}; </delete> <!--修改学生信息--> <update id="updatestu" parameterType="com.pojo.pp1.stu"> update stu set name=#{name} where ID=#{ID} </update> </mapper> **src\\test\\java\\com\\pojo\\Dao\\stuDaoTest.java(测试文件)** package com.pojo.Dao; import com.pojo.pp1.stu; import com.utils.mybatisUtils; import org.apache.ibatis.jdbc.SQL; import org.apache.ibatis.session.SqlSession; import org.junit.Test; import java.util.List; public class stuDaoTest { @Test // 查找全部写学生的信息 public void selectstu() { SqlSession sqlSession = mybatisUtils.getSqlSession(); stuDao stuDao = sqlSession.getMapper(com.pojo.Dao.stuDao.class); List<stu> stuList = stuDao.selectstu(); for (stu stu : stuList) { System.out.println(stu); } sqlSession.close(); } @Test // 通过ID查找学生 public void findstuByID(){ SqlSession sqlSession = mybatisUtils.getSqlSession(); stuDao stuDao = sqlSession.getMapper(com.pojo.Dao.stuDao.class); stu s = stuDao.findstuByID(2); System.out.println(s); } // 插入学生信息 @Test public void addstu() { SqlSession sqlSession = mybatisUtils.getSqlSession(); stuDao stuDao = sqlSession.getMapper(com.pojo.Dao.stuDao.class); int a = stuDao.addstu(new stu(7, "李白")); if (a > 0) { System.out.println("添加学生成功!"); } sqlSession.commit(); sqlSession.close(); } // 删除学生信息 @Test public void deletestuById() { SqlSession sqlSession = mybatisUtils.getSqlSession(); stuDao stuDao = sqlSession.getMapper(com.pojo.Dao.stuDao.class); int a = stuDao.deletestuById(2); if (a > 0) { System.out.println("删除学生信息成功!"); } sqlSession.commit(); sqlSession.close(); } @Test public void updatestu() { SqlSession sqlSession = mybatisUtils.getSqlSession(); stuDao stuDao = sqlSession.getMapper(com.pojo.Dao.stuDao.class); int a = stuDao.updatestu(new stu(1, "李新")); if (a > 0) { System.out.println("信息修改成功!"); } sqlSession.commit(); sqlSession.close(); } } -------------------- 努力,加油干!!!! ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDEwNzE0MA_size_16_color_FFFFFF_t_70 1][] [20210719223933163.png]: /images/20210813/d88dd1b9485744bb875a9541309ab5c5.png [20210719223955409.png]: /images/20210813/5baa67eef6fe4751b37e31bcc1b667e1.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDEwNzE0MA_size_16_color_FFFFFF_t_70]: /images/20210813/108d6a7e5f8f436b90f8acdcd4f3a106.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDEwNzE0MA_size_16_color_FFFFFF_t_70 1]: /images/20210813/d549db7a70ff4027bea1e65aea6b91f0.png
还没有评论,来说两句吧...