mybatis框架配置开发的基本步骤
新创建一个javaweb项目,然后执行下面的步骤:
一、导入对应的jar包
因为这里使用的是mysql数据库,如果选择其他数据库。需要导入对应的jar包
二、配置mybatis-config.xml配置文件
配置一些必要的标签,这些标签的顺序是有规定的,需要按照规定的顺序来书写。更多标签使用教程可以到
http://www.mybatis.org/mybatis-3/zh/index.html
数据库连接池有两种写法:
1、直接写在dataSource里面,如:<property name="driver" value="com.mysql.jdbc.Driver"/>
2、创建外部properties文件进行引入,如下database.properties文件
driver=com.mysql.jdbc.Driver //连接数据库的驱动 url=jdbc:mysql://localhost:3306/book_db?useUnicode=true&characterEncoding=UTF-8 //book_db是数据库的名称 后面的设置编码格式 username=root //用户名 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="${driver}"/> <property name="url" value="${url}"/> <property name="username" value="${username}"/> <!--使用properties文件,调用是的格式 ${}--> <property name="password" value="${password}"/>
</dataSource>
</environment> </environments> <!-- (4)配置mapper映射 -->
<!-- 数据库映射文件的“全包名路径” 在下面会创建sql.xml的映射文件-->
<mappers>
<mapper resource="Mapper/sql.xml"/>
</mappers>
</configuration>
mapper映射文件的配置有4个方法:
1、绝对路径配置 <mapper url=""/>
2、相对路径 <mapper resource=""/>
3、接口引入 <mapper class=""/>
4、package引入 <mapper name=""/>
后面两种方法需要满足条件:需要对应的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类
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的开发也有两种:
1、基本开发:
mapper中没有具体的要求,namespace、id 都可以随便写一个名称,用来标识调用。
2、mapper动态开发:
动态开发需要遵守几个条件,
namespace:存入接口类的包路径
Id:存入是接口中方法的名称
parameterType:存入方法的参数
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