Maven项目中使用Mybatis框架
一 .准备一个空的Maven项目。
二. 配置pom文件,引入相关依赖。
<!--版本建议换成提示的更安全的版本--> <!-- mybatis插件 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.6</version> </dependency> <!--mysql相关依赖 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.33</version> </dependency> <!--单元测试依赖 --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.13.1</version> <scope>test</scope> </dependency> <!--lombok插件--> <!--写实体类时方便生成相关的get/set/构造器等方法--> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.18</version> </dependency> </dependencies>
三. mybatis配置文件编写。
<?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> <settings> <!--空着,待会儿补充 --> </settings> <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/数据库名字"/> <property name="username" value="用户名"/> <property name="password" value="密码"/> </dataSource> </environment> </environments> <mappers>
<!--空着,待会儿补充 -->
</mappers>
</configuration>
四.这里按照实体类-Mapper-Mapper.xml的顺序写,并非固定的。
1.写一个实体类
1 @Data 2 public class Owner { 3 private Integer id;//业主id 4 private String OwnerName;//业主姓名 5 private String OwnerSex;//业主性别 6 private String OwnerTel;//业主电话 7 }
2.编写OwnerMapper接口
1 public interface OwnerMapper { 2 //写一个作为例子 3 //添加一个业主 4 void addAOwner(Owner Owner); 5 }
3.编写OwnerMapper.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"> <!-- namespace写你刚刚编写的mapper接口,类似于之前的实现这个接口--> <mapper namespace="com.wsl.wuye.mapper.OwnerMapper"> <!-- 对应接口里的方法名字,添加namespace后可以点击接口里的提示自动在这里面创建,类似于自动生成实现接口方法--> <insert id="addAOwner"> insert into owner(owner_name,owner_sex,owner_tel) values (#{ownerName},#{ownerSex},#{ownerTel}) </insert> </mapper>
五.将xml文件添加进mybatis的配置文件
<!-- 现在你可以在刚刚空着的部分添加以下配置--> <settings> <!-- 解决实体类的属性跟数据库字段名的映射问题,下划线会帮你对映驼峰命名--> <setting name="mapUnderscoreToCamelCase" value="true"/> <!-- 内置日志,配置可以查看你的sql语句,你也可以使用其他的日志框架--> <setting name="logImpl" value="STDOUT_LOGGING"/> </settings> <mappers> <!-- 刚刚你编写xml文件的路径 写了框架才能帮你找到--> <mapper resource="mappers/OwnerMapper.xml"/> </mappers>
六.编写测试类,测试一下上面的方法
1 public class OwnerMapperTest { 2 private SqlSession sqlSession; 3 private OwnerMapper mapper; 4 5 @Before //表示在测试方法执行前执行 6 public void init() { 7 //1.获取配置文件mybatis-config.xml的流对象 8 InputStream stream; 9 try {
//注意别导错包了,是apache下那个 10 stream = Resources.getResourceAsStream("mybatis-config.xml"); 11 } catch (IOException e) { 12 throw new RuntimeException(e); 13 } 14 15 //2. 获取一个SqlSessionFactory对象 16 SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(stream); 17 18 //3.通过工厂类SqlSessionFactory生成SqlSession对象 19 sqlSession = sqlSessionFactory.openSession(); 20 21 //4.获取OwnerMapper的代理 22 mapper = sqlSession.getMapper(OwnerMapper.class); 23 } 24 @After //测试方法后执行 25 public void commit() { 26 //6.提交事务 27 sqlSession.commit(); 28 } 29 @Test 30 public void testAddAOwner() { 31 //5.测试添加一个业主对象的方法 32 Owner m = new Owner(); 33 m.setId(50); 34 m.setOwnerName("齐虎"); 35 m.setOwnerSex("男"); 36 m.setOwnerTel("15665457345"); 37 mapper.addAOwner(m); 38 } 39 }
总结:这里已经算是成功完成了一个插入操作,想进行其他的操作只需在mapper接口里添加方法,再在对应的xml文件里写sql语句就行了。注意的是有的时候你不止一个实体类,这时候你编写新的mapper接口和新的xml文件后一定不要忘记在mybatis的配置文件还要配置一下(上面第五点)。下面看下项目的一般结构。