mybatis框架配置开发的基本步骤
新创建一个javaweb项目,然后执行下面的步骤:
一、导入对应的jar包
因为这里使用的是mysql数据库,如果选择其他数据库。需要导入对应的jar包
二、配置mybatis-config.xml配置文件
配置一些必要的标签,这些标签的顺序是有规定的,需要按照规定的顺序来书写。更多标签使用教程可以到 http://www.mybatis.org/mybatis-3/zh/index.html数据库连接池有两种写法:
- 直接写在dataSource里面,如:
- 创建外部properties文件进行引入,如下database.properties文件
jdbc.driver=com.mysql.jdbc.Driver //连接数据库的驱动
jdbc.url=jdbc:mysql://localhost:3306/book_db?useUnicode=true&characterEncoding=UTF-8 //book_db是数据库的名称 后面的设置编码格式
jdbc.username=root //用户名
jdbc.password=6112783king //用户密码
创建mybatis-config.xml文件,并导入database.properties文件
<?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>
<!-- 外部数据库连接池数据导入 在这里文件里面可以进行数据库编码的设置-->
<properties resource="Mapper/database.properties"/>
<!-- (1)配置环境 -->
<environments default="develoment">
<environment id="develoment">
<!-- (2)配置事务管理器 -->
<transactionManager type="JDBC"></transactionManager>
<!-- (3)配置数据库连接池 -->
<dataSource type="POOLED"> <!--数据库连接池的配置,也可以直接写在这里文件里面:如下写法-->
<property name="driver" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/> <!--使用properties文件,调用是的格式 ${}-->
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>
<!-- (4)配置mapper映射 -->
<!-- 数据库映射文件的“全包名路径” 在下面会创建sql.xml的映射文件-->
<mappers>
<mapper resource="Mapper/sql.xml"/>
</mappers>
</configuration>
注意:
mapper映射文件的配置有4个方法:
- 绝对路径配置
- 相对路径
- 接口引入
- package引入
后面两种方法需要满足条件:需要对应的mapper.xml与接口mapper处于同一包下才可以,
且xml文件名与接口名要相同,xml文件中的namespace必须是对应接口的全包名
三、创建实体类
为了方便实现,实体类中的属性类型和名称,应该和数据库表中的分别对应。创建的是标准的类。需要提供get、set方法。这里创建的是Admin.java实体类
四、创建mapper接口方法
主要是用来封装需要实现的方法的接口。这里是mapperWays.java类
public interface mapperWays {
public Admin getAdmin(String name); //封装的方法
}
五、创建SqlSession工厂类
因为mybatis都需要SqlSessionFactory来实例的,所以对这个操作进行一个封装,方便以后的使用, 这里创建sqlSessionFactory.java类。
注意:这里面的openSession对象开启事务。为true:自动开启事务。或者,使用commit()方法进行开启事务。
public class sqlSessionFactory {
//(1)创建SqlSessionFactory
private static SqlSessionFactory factory;
//保证代码只创建一个次
static{
try {
//(2)使用IO流进行获取mybatis_config.xml配置文件
InputStream is = Resources.getResourceAsStream("Mapper/mybatis_config.xml");
//(3)获取到SqlSessionFactory 对象
factory = new SqlSessionFactoryBuilder().build(is);
} catch (IOException e) {
e.printStackTrace();
}
}
public static SqlSession createSqlSession(){ //使用openSession()获取到SqlSession 对象
return factory.openSession(false);
}
public static void closeSqlSession(SqlSession sqlSession){//关闭流的方法
if(null != sqlSession)
sqlSession.close();
}
}
六、创建sql.xml映射文件
主要是用来书写与数据库操作相关的sql语句。
mapper的开发也有两种:
- 基本开发:
mapper中没有具体的要求,namespace、id 都可以随便写一个名称,用来标识调用。 - mapper动态开发:
动态开发需要遵守几个条件,
(1)namespace:存入接口类的包路径
(2)Id:存入是接口中方法的名称
(3)parameterType:存入方法的参数
(4)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="mm"> <!--如果:使用mapper动态开发,则需要改掉namespace="dao.mapperWays"-->
<!---如果使用mapper动态开发, id 也要和接口中的方法名一致 id="getAdmin"-->
<select id="getadmin" parameterType="String" resultType="dao.Admin">
select * <!-- 进行sql语句的书写 -->
from admin
where username = #{name}
</select>
</mapper>
七、创建mapper接口类的实现类
只使用mybatis的开发,需要创建实现类开发。以后的spring框架等结合,就不需要进行实现类的创建
public class mapperWaysImpl implements mapperWays {
@Override
public Admin getAdmin(String name) {
SqlSession sql = null;
Admin admin = null;
try {
//使用“类.方法”的方式。创建SqlSession对象
sql = sqlSessionFactory.createSqlSession();
//这种是基本的mapper配置方法。调用的时候,使用 namespace + id 进行调用
admin = sql.selectOne("mm.getadmin",name);
//这是动态mapper开发。使用(接口类.class).接口方法。 调用
//admin = sql.getMapper(mapperWays.class).getAdmin(name);
} catch (Exception e) {
e.printStackTrace();
}finally {
sqlSessionFactory.closeSqlSession(sql); //关闭流
}
return admin;
}
}
基本的mybatis配置开发就配置好了。可以实例化实现类,调用方法,就可以测试。
还有很多详细的知识,可以参考官网http://www.mybatis.org/mybatis-3/zh/index.html