mybatis使用Mapper代理开发会更加的方便,一般推荐这样的方式,形式和mapper常规使用也差不多
其他说明:还有注解的方式可以调用,不过注解的方式只能应用于简单的sql语句,复杂的语句就要用文中的xml调用方式了
使用配置:
以下的安装配置的超链接,如有需要可用去查看
一、全图预览
二、使用步骤
1.pom.xml里面添加依赖包
先在maven架构的pom.xml里面添加要使用的mybatis和mysql两个依赖(俗称jar包)
<dependencies> <!--mybatis依赖包--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.11</version> </dependency> <!--mysql依赖包--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.30</version> </dependency> </dependencies>
如图所示:
2.新建统一配置文件(俗称数据库连接文件)
(1)在resources下--新建--文件(选择第2个)---mybatis-config.xml
ps:这里面是用来连接数据库的统一配置文件
2)把这个配置信息添加到这个新建的配置文件里面
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "https://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"/><!--改:数据库的固定连接,老版本不用cj--> <property name="url" value="jdbc:mysql://localhost:3306/javafx"/><!--改数据库的要连接的库--> <property name="username" value="root"/><!--改:数据库的账号--> <property name="password" value="123456"/><!--改:数据库的密码--> </dataSource> </environment> </environments> <mappers> <!--加载映射文件--> <mapper resource="com/project/Mapper/boyMapper.xml"/><!--改:把映射文件的源根路径复制到这里--> </mappers> </configuration>
如图所示:
3.新建项目
(1)要在java的项目下面建立2个包,一个是接口包Mapper,一个是封装包pojo
com.project:项目名
Mapper:接口包
pojo:实现类包
(2)
在封装包pojo里面建立一个和数据库对应的封装类--Boy。
在接口包Mapper下建立一个接口--boyMapper
ps:数据库图(这个是为了方便对应参考,知道那些类名是怎么来的)
Boy(里面是封装属性。然后快捷键生成的set和get、构造方法、toString)
boyMapper(接口起这个名字是为了和接下来的resources里面的xml映射文件名一样)
ps:并在接口里面定义一个查询全部的集合方法-
4.新建映射文件(俗称数据库对应表xml)
(1)在resources下--新建--目录包---com/project/Mapper
格式:
新建一个目录包和接口包一样的名称就好了。建立输入时候注意:小点那个要用/代替才能建立成功
ps:这样做的目的就是为了xml文件和接口包在同一个文件下
如图所示
(2)在resources下新建好的包下建立一个boyMapper.xml文件,并在里面写上对应的映射方法
格式
数据库要操作对应的表名Mapper.xml,以后数据库的操作语句都在这个映射文件里面写就好了
添加进去的映射方法
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "https://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!--映射查询方法--> <mapper namespace="com.project.Mapper.boyMapper"><!--namespace=对应接口的全部路径--> <select id="selectAll" resultType="com.project.pojo.Boy"><!--参数一:接口对应的方法名 参数二:封装类的详细地址--> select * from boy;<!--要执行的sql语句--> </select> </mapper>
如图所示
5.测试
编写一个测试类,放哪里测试都可以(我在pojo里面建立)
package com.project.pojo; import com.project.Mapper.boyMapper; 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; import java.util.List; public class BoyTest { public static void main(String[] args) throws IOException { //1.加载mybatis连接文件(核心配置文件) String resource = "mybatis-config.xml";//这是连接数据库的统一配置xml文件 InputStream inputStream = Resources.getResourceAsStream(resource);//固定写法 SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);//固定写法 //2.获取SqlSessionFactory对象--固定写法 SqlSession sqlSession = sqlSessionFactory.openSession(); //3.执行sql语句 //接口 自定义接口名 = sqlSession.getMapper(接口.class); boyMapper boyMapper = sqlSession.getMapper(boyMapper.class); //接口里面的方法 List<Boy> boyAll = boyMapper.selectAll(); //4.打印语句 System.out.println(boyAll); //5.释放资源--固定写法 sqlSession.close(); } }
运行结果:
[boy{id=1, name='小明', age=18}, boy{id=2, name='小美', age=19}]