文章目录
MyBatis 的简单引入
step1:简单准备
创建数据库
首先,我们先创建一个数据库,表名为 tbl_employee,
该表的字段以及类型如下
jar包
所需要的 jar 如下
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-61qnSnWQ-1571880729841)(en-resource://database/8764:1)]
step2:依据所创建的表创建一个 POJO 对象
首先创建一个 POJO 类型的类,该类的字段将会和实际的表的对象相对应。
package cn.edu.stu.demo1.bean;
public class Employee {
private int id;
private String last_name;
private String gender;
private String email;
public Employee(int id, String name, String gender, String email) {
super();
this.id = id;
this.last_name = name;
this.gender = gender;
this.email = email;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
@Override
public String toString() {
return "Employee [id=" + id + ", name=" + last_name + ", gender=" + gender + ", email=" + email + "]";
}
public String getLast_name() {
return last_name;
}
public void setLast_name(String last_name) {
this.last_name = last_name;
}
}
step3: 配置 MyBatis 配置文件
为了方便寻找配置文件,我们将所有的配置文件都放入一个 conf 文件夹中
在配置文件中,我们需要设置驱动器,url 路径,用户名密码,
<?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>
<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_demo1" />
<property name="username" value="root" />
<property name="password" value="123456" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="EmployeeMapper.xml" />
</mappers>
</configuration>
上述代码中,有一个 mappers 的对象,是用来反映 SQL 语句和相应的 POJO 对象的映射的关系。
step4: 配置映射文件
映射文件,我们首先需要指定命名空间,命名空间可以区分不同的映射文件。中间的 select 便是映射的语句。id 属性可以区分不同的 SQL 语句。resultType 是指定相应的返回类型,此时返回类型的字段名称,必须与查询的字段名称(或者别名)相吻合。
<?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="org.mybatis.example.BlogMapper">
<select id="selectEmp" resultType="cn.edu.stu.demo1.bean.Employee">
select * from tbl_employee where id = #{id}
</select>
</mapper>
step5:log4j 日志配置
日志文件的配置复制源码即可,暂不需要过多了解
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration
xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
<appender name="CONSOLE"
class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="[%d{dd/MM/yy hh:mm:ss:sss z}] %5p %c{2}: %m%n" />
</layout>
</appender>
<appender name="FILE"
class="org.apache.log4j.RollingFileAppender">
<param name="file" value="${user.home}/foss-framework.log" />
<param name="append" value="true" />
<param name="maxFileSize" value="10MB" />
<param name="maxBackupIndex" value="100" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="%d [%t] %-5p %C{6} (%F:%L) - %m%n" />
</layout>
</appender>
<!-- 下面是打印mybatis语句的配置 -->
<logger name="com.ibatis" additivity="true">
<level value="DEBUG" />
</logger>
<logger name="java.sql.Connection" additivity="true">
<level value="DEBUG" />
</logger>
<logger name="java.sql.Statement" additivity="true">
<level value="DEBUG" />
</logger>
<logger name="java.sql.PreparedStatement" additivity="true">
<level value="DEBUG" />
</logger>
<logger name="java.sql.ResultSet" additivity="true">
<level value="DEBUG" />
</logger>
<root>
<level value="INFO" />
<appender-ref ref="CONSOLE" />
<appender-ref ref="FILE" />
</root>
</log4j:configuration>
step6:简单调用
在 MyBatis 中,使用 SqlSession 对象查询语句结果。而 SqlSession 对象需要通过 SQLSessionFactory 对象创建。SqlSessionFactory 需要根据 MyBatis 的配置文件创建,默认情况下都回去 conf 文件夹下寻找 MyBatis 的配置文件。
SqlSession 创建成功后,会根据 mybatis_config.xml 文件中的 自动加载 SQL 语句映射文件。要使用时,就需要用命名空间加上 SQL 语句的 id (EmployeeMapper.xml)便可以调用并执行相应的 SQL 语句。
@Test
public void test1() throws IOException {
String resource = "mybatis_config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession sqlSession = sqlSessionFactory.openSession();
try {
Employee employee = sqlSession.selectOne("org.mybatis.example.BlogMapper.selectEmp",1);
System.out.println(employee);
}finally {
sqlSession.close();
}
}
运行结果:
Employee [id=1, name=Dany, gender=man, email=Dany@cn.stu]