第一个Mybatis程序
具体可参考官方中文文档!!!!!!
第一步:搭建环境
搭建数据库:
这里我创建的是
新建项目:
1.新建一个普通maven项目·
2.删除src目录
3.导入依赖:
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.5</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<dependencies>
第二步:创建一个模块
新建一个模块是上面项目的子工程。
1.编写mybatis核心配置文件:
在resources中创建创建一个xml文件。我这里命名为mybatis-config.xml。复制官方文档中的配置文件
<configuration>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSL=false&useUnicode=true&characterEncoding=UTF-8"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/luo/dao/UserMapper.xml"/>
</mappers>
</configuration>
填写url需要连接数据库。注意如果在连接数据库出现Server returns invalid timezone.Go to 'Advanced' tab and set 'serverTimezone' property manually.
则需更改时区。
2.编写mybatis工具类
第三步:编写代码
1.编写实体类
2.编写dao接口
3.接口实现类转换为一个Mapper配置文件
namespace中的包名要和Dao/mapper接口中的包名一致!
id就是对应的namespace中的方法名
resultType就是Sql语句执行的返回值
parameterType就是方法的参数类型
第四步:测试
测试中的注意点:1.接口实现类也就是转化了的Mapper配置文件一定要在mybatis核心配置文件中注册;
2.资源过滤问题,在测试中可能会找不到我们的接口实现类也就是转化了的Mapper配置文件,
在父项目和子项目的pom.xml添加如下配置,以便能导出配置文件。
3.在测试增删改时要提交事务sqlSession.commit();(在工具类中,设置 return SqlsessionFactory.openSession(true));可自动提交事务
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
</build>
模糊查询: