1.打开idea,依次点击左上角的File->New->project 2.选择Maven,然后点击Next 3.通过点击这个文件夹进行文件存放地址的改变,然后输入项目的名字 4.再点击Finish,Maven项目就创建好了 5.然后在pom.xml文件中加入Mybatis相关依赖
<?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>MybatisDays01</artifactId> <version>1.0-SNAPSHOT</version> //以下为依赖 <dependencies> <!-- mysql连接 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.16</version> </dependency> <!-- 开启日志 --> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.3.0-alpha14</version> <scope>test</scope> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-core</artifactId> <version>1.3.0-alpha14</version> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-access</artifactId> <version>1.3.0-alpha14</version> </dependency> <!-- 小辣椒 --> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.22</version> <scope>provided</scope> </dependency> <!-- 测试依赖 --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.13.1</version> <scope>test</scope> </dependency> <!-- mybatis依赖 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.7</version> </dependency> </dependencies> </project>
6.添加好相应依赖后,点击刷新进行相关依赖的下载 下载好后,按以下图示步骤查看依赖是否下载成功 7.配置 XML文件,我的XML文件为mybatis-config.xml, XML文件配置不唯一,可以参考Mybais官网进行配置
<?xml version="1.0" encoding="UTF-8" ?> <!--mybatis 官方約定该文件必须包含哪标签,不能超过官方提供标签的范围--> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <!-- 设置 mybatis的一些行为;开启mybatis为我们提供的一些强大的功能--> <settings> <!-- 开启日志功能 --> <setting name="logImpl" value="SLF4J"/> <!-- 驼峰命名映射 --> <setting name="mapUnderscoreToCamelCase" value="true"/> </settings> <!-- 配置数据库的连接--> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <!-- 数据库驱动 --> <property name="driver" value="com.mysql.cj.jdbc.Driver"/> <!-- 数据库名称,mysql时区设置 --> <property name="url" value="jdbc:mysql://localhost:3306/java2215?serverTimezone=Asia/Shanghai"/> <!-- 用户名 --> <property name="username" value="root"/> <!-- 密码 --> <property name="password" value="135212"/> </dataSource> </environment> </environments> <!--核心配置文件关联 sql 映射文件--> <mappers> </mappers> </configuration
8.配置完成,利用Mybatis对部门表进行增删改查(CRUD) 1.首先新建包 包的命名要规范 然后再bean包下新建Departments类,类名首字母大写,要规范 数据库中的部门表相应字段
package com.baqn.bean; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; /** * @author NXX * @version 1.0 * @date 2022/7/30 8:41 */ /* @Data @AllArgsConstructor @NoArgsConstructor 是小辣椒的相应功能,其中@Data就相当于,getter,setter,toString, @AllArgsConstructor有参构造方法 @NoArgsConstructor无参构造方法 通过小辣椒,可以减少代码量 */ @Data @AllArgsConstructor @NoArgsConstructor public class Departments { //将数据库中的字段和所建的类的字段要一一对应,其中dept_code要写成驼峰命名形式,因为在XML文件中已开启驼峰命名形式 private String deptCode; private String name; }
2.然后新建一个包(dao),在dao包下新建DepartmentsDao接口
package com.baqn.dao; import com.baqn.bean.Departments; /** * @author NXX * @version 1.0 * @date 2022/7/26 18:47 */ public interface DepartmentsDao { //获取部门表所有数据方法,由于有多条数据,所以使用集合 List<Departments> getDeptList(); }
3.在resourse包下新建一个mapper包,在mapper中新建DepaermentMapper.xml
<?xml version="1.0" encoding="UTF-8" ?> <!--sql映射文件:约束 sql映射相关的标签 --> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!-- namespace 和 dao层的相关接口的全限定名保持一致即可--> <mapper namespace="com.baqn.dao.DepartmentsDao" > <!-- Departments getDeptList(); id中的值为dao层定义的方法名,查询语句需要一个返回类型--> <select id="getDeptList" resultType="com.baqn.bean.Departments"> SELECT * FROM l_departments </select> </mapper>
3.在mybatis-config.xml的中加入
4.在test包下新建包,类,进行查询部门表数据所有数据测试
package com.bdqn.bean; import com.baqn.bean.Departments; import com.baqn.dao.DepartmentsDao; 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 org.junit.Before; import org.junit.Test; import java.io.IOException; import java.io.InputStream; import java.util.List; /** * @author NXX * @version 1.0 * @date 2022/7/30 9:35 */ public class DepartmentTest { private SqlSessionFactory sqlSessionFactory; //@Before注解用于每次代码运行都会先执行该注解下的代码 @Before public void initSqlSessionFactory() throws IOException { //核心配置文件的路径 String resource = "mybatis-config.xml"; //通过流的方式读取核心配置文件 InputStream inputStream = Resources.getResourceAsStream(resource); //构建一个建造者 SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder(); //通过建造者,最终创建生产工厂 sqlSessionFactory = builder.build(inputStream); } // 在方法上加上 @Test就可以单独运行该注解下的代码 // @Before, @Test都是junit中的注解 @Test public void getDeptList(){ SqlSession sqlSession = sqlSessionFactory.openSession(); //获得DepartmentsDao的代理对象,此处用到动态代理 DepartmentsDao mapper = sqlSession.getMapper(DepartmentsDao.class); //通过代理对象调用getDeptList()方法,获得部门集合 List<Departments> deptList = mapper.getDeptList(); // for (int i = 0; i < deptList.size(); i++) { System.out.println(deptList.get(i)); } //lambda表达式 // deptList.forEach(x-> System.out.println(x)); } }
5.运行结果: