创建数据库表:
项目部署:
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>org.example</groupId> <artifactId>mybatistest5</artifactId> <version>1.0-SNAPSHOT</version> <properties> <maven.compiler.source>14</maven.compiler.source> <maven.compiler.target>14</maven.compiler.target> </properties> <dependencies> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.7</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.29</version> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.12</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit-dep</artifactId> <version>4.11</version> <scope>test</scope> </dependency> </dependencies> </project>
资源文件:
db.properties的源码:
jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/mybatis jdbc.username=root jdbc.password=111111
log4j.properties的源文件:
# Global logging configuration log4j.rootLogger=ERROR, stdout # MyBatis logging configuration... log4j.logger.com.itheima=DEBUG # Console output... log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
创建实体类:
package com.itheima.pojo; public class Worker { private Integer id; private String name; private Integer age; private String sex; private Integer work_id; 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 Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public Integer getWork_id() { return work_id; } public void setWork_id(Integer work_id) { this.work_id = work_id; } @Override public String toString() { return "Worker{" + "id=" + id + ", name='" + name + '\'' + ", age=" + age + ", sex='" + sex + '\'' + ", worker_id='" + work_id + '\'' + '}'; } } 核心配置文件:
<?xml version="1.0" encoding="UTF8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <properties resource="db.properties"/> <environments default="development"> <environment id="development"> <transactionManager type="JDBC" /> <dataSource type="POOLED"> <property name="driver" value="${jdbc.driver}" /> <property name="url" value="${jdbc.url}" /> <property name="username" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> </dataSource> </environment> </environments> <mappers> <mapper class="com.itheima.dao.WorkerMapper" /> </mappers> </configuration>
工具类:
package com.itheima.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.Reader; public class MybatisUtils { private static SqlSessionFactory sqlSessionFactory=null; static { try { Reader reader= Resources.getResourceAsReader("mybatis-config.xml"); sqlSessionFactory=new SqlSessionFactoryBuilder().build(reader); } catch (IOException e) { throw new RuntimeException(e); } } public static SqlSession getSession(){ return sqlSessionFactory.openSession(); } }
接口:
package com.itheima.dao; import com.itheima.pojo.Worker; import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Insert; import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.Update; public interface WorkerMapper { //通过id查找 @Select("select * from tb_worker where id=#{id}") Worker selectWorker(int id); //插入数据 @Insert("insert into tb_worker(name,age,sex,work_id) value(#{name},#{age},#{sex},#{work_id})") int insertWorker(Worker worker); @Delete("delete from tb_worker where id=#{id}") int deleteWorker(int id); @Update("update tb_worker set name=#{name},age=#{age} where id=#{id}") int updateWorker(Worker worker); }
测试类:
import com.itheima.Utils.MybatisUtils; import com.itheima.dao.WorkerMapper; import com.itheima.pojo.Worker; import org.apache.ibatis.session.SqlSession; import org.junit.Test; public class mybatisTest { @Test public void findWorkerById(){ SqlSession sqlSession= MybatisUtils.getSession(); WorkerMapper mapper=sqlSession.getMapper(WorkerMapper.class); Worker worker=mapper.selectWorker(1); System.out.println(worker.toString()); sqlSession.close(); } @Test public void insertWorkerTest(){ SqlSession sqlSession=MybatisUtils.getSession(); Worker worker=new Worker(); worker.setId(4); worker.setName("刘邦"); worker.setAge(56); worker.setSex("男"); worker.setWork_id(1004); WorkerMapper workerMapper=sqlSession.getMapper(WorkerMapper.class); int num=workerMapper.insertWorker(worker); if(num>0) { System.out.println("成功插入"+num+"条数据"); }else { System.out.println("插入失败"); } System.out.println(worker.toString()); sqlSession.commit(); sqlSession.close(); } @Test public void deleteWorker(){ SqlSession sqlSession=MybatisUtils.getSession(); WorkerMapper workerMapper=sqlSession.getMapper(WorkerMapper.class); int num=workerMapper.deleteWorker(4); if (num>0) { System.out.println("成功删除"+num+"条数据"); }else { System.out.println("删除失败"); } sqlSession.commit(); sqlSession.close(); } @Test public void updateWorker(){ SqlSession sqlSession=MybatisUtils.getSession(); Worker worker=new Worker(); worker.setId(1); worker.setId(1); worker.setName("张三丰"); worker.setAge(66); WorkerMapper workerMapper=sqlSession.getMapper(WorkerMapper.class); int num=workerMapper.updateWorker(worker); if (num>0) { System.out.println("成功修改"+num+"条数据"); }else { System.out.println("修改失败"); } System.out.println(worker.toString()); sqlSession.commit(); sqlSession.close(); } }
运行截图: