MyBatis配置
-
首先在pom.xml中进行配置(makedown中左缩进快捷键ctrl+[)
<dependencies> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.5</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.27</version> </dependency> <!-- 引入对实体类的编写 --> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.22</version> </dependency> </dependencies>
-
新建数据表
use mybatis; create table t_account( id int primary key auto_increment, username varchar(11), password varchar(11), age int )
-
新建数据表对应的实体类Account
package com.begoniaflower.entity; import lombok.Data; @Data public class Account { private long id; private String username; private String password; private int age; }
-
创建Mybatis的配置文件config.xml,文件名可以自定义
<!-- config.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> <!-- 配置MyBatis运⾏环境 --> <environments default="development"> <environment id="development"> <!-- 配置JDBC事务管理 --> <transactionManager type="JDBC"></transactionManager> <!-- POOLED配置JDBC数据源连接池 --> <dataSource type="POOLED"> <property name="driver" value="com.mysql.cj.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=UTF-8"></property> <property name="username" value="root"></property> <property name="password" value="123456"></property> </dataSource> </environment> </environments> </configuration>
-
MyBatis框架需要开发者自定义SQL语句,写在Mapper.xml文件中,实际开发中会为每一个实体类创建对应的Mapper.xml,定义管理该对象数据的sql。
<?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.begoniaflower.mapper.AccountMapper"> <insert id="save" parameterType="com.begoniaflower.entity.Account"> insert into t_account(username,password,age) values(#{username},#{password},#{age}) </insert> <!-- id是实际调用MyBatis方法时需要用到的参数 --> </mapper>
-
在全局配置文件config.xml中配置AccountMapper.xml
<!-- 注册AccountMapper.xml --> <mappers> <mapper resource="com/begoniaflower/mapper/AccountMapper.xml"></mapper> </mappers>
-
调用MyBatis的原生接口执行添加操作。
package com.begoniaflower.test; import com.begoniaflower.entity.Account; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import java.io.InputStream; public class Test { public static void main(String[] args) { //加载MyBatis配置文件 InputStream inputStream = Test.class.getClassLoader().getResourceAsStream("config.xml");//将config.xml转换为流 SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder(); SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(inputStream); SqlSession sqlSession = sqlSessionFactory.openSession(); String statement = "com.begoniaflower.mapper.AccountMapper.save"; Account account = new Account(1L,"张三","123",20); sqlSession.insert(statement,account); sqlSession.commit(); } }
-
同时要注意此时如果直接运行会出现错误,提示找不到com/java/mapper/AccountMapper.xml
此时并不是因为我们的地址写的有问题,而是我们没有在pom.xml中进行配置,当我们配置之后就可以解决
代码如下:
<!-- 可以读取出java文件夹中所有的xml文件 --> <build> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> </resource> </resources> </build>