Mybatis搭建实例
文章目录
一、Mybatis的好处
二、Mybatis搭建项目
一、使用Mybatis的好处
MyBatis能够帮助我们将SQL语句和Java代码分离
二、Mybatis搭建项目
1、创建Java工程,如图2-1,2-2所示
创建项目 2-1
创建项目 2-2
2、导入所需的jar包:创建folder——>导入jar包,如图2-3,2-4、2-5所示:
导入jar包 2-3
导入jar包 2-4
导入jar包 2-5
3、配置Mybatis文件:点击src——>new——>other,出现如图2-7的页面,搜索XML,创建mybatis的XML文件,完成后点击finish如图2-8所示
配置mybatis 2-7
配置mybatis 2-8
3、创建项目其余的模块,如图2-9所示:
项目模块 2-9
4、书写各部分的Java代码,如下所示:
mybatis中的代码:
<?xml version="1.0" encoding="UTF-8"?>
<!-- 必需要有这天语句,否则无法使用configuration标签 -->
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!--配置数据库信息,可以配置多个数据库,比如用于开发的,用于测试的-->
<environments default="mysql"> <!-- 如果default的值与environment中id的值相等,则默认连接的是该数据库 -->
<environment id="mysql">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://39.106.122.229/venus"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<!-- 注册mapper xml文件,即找到书写的有sql语句大那个文件 -->
<mappers>
<mapper resource="area.xml" />
</mappers>
</configuration>
area.xml中的代码:
<?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">
<!--只声明了接口,没有Dao层,由动态代理类创建的对象去实现接口里面的方法,并执行sql语句 -->
<mapper namespace="com.jd.area.IAreaDao">
<!-- 唯一的的标识,方法名;resultType:返回值类型 -->
<select id="getNames" resultType="java.lang.String">
select name from area where code=#{code}
</select>
</mapper>
IAreaDao中的代码:
package com.jd.area;
public interface IAreaDao {
String getNames(String code);
}
Test中的代码:
public class Test {
public static void main(String[] args) throws IOException {
//获取SqlSessionFactory对象
InputStream inputStream = Resources.getResourceAsStream("mybatis.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
//获取SqlSession对象,代表与数据库的一次会话,用完需要关闭
SqlSession sqlSession = sqlSessionFactory.openSession();
//获取aAreaDao接口实现类对象,即动态代理类对象
IAreaDao aAreaDao = sqlSession.getMapper(IAreaDao.class);
//证明使用的是动态代理
System.out.println(aAreaDao.getClass());
//调用getNames,输出地域的名字输出结果,实际上是动态代理对象去处理,动态代理对象实现了IAreaDao接口,可以认为这里是接口回调,动态代理类是接口的实现类
System.out.println(aAreaDao.getNames("370982"));
//关闭sqlSession,释放资源
sqlSession.close();
}
}
5、运行Test内的代码,输出结果如图2-10所示:
结果 2-10