1、创建一个mybatisdemo(maven web)的项目;
2、要配置pom.xml文件,追加mybatis有关的开发包;
<!-- 配置mybatis的开发包 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.1</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.0.8</version>
</dependency>
<!-- 配置junit测试类包-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<!-- 配置java web支持包-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
<!-- 配置mysql支持包-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.0.8</version>
</dependency>
以上就表示可以直接使用MyBatis 进行开发了。
3、在MyBatis 里面实际上需要有一个综合的配置文件,相当于进行MyBatis 所有核心内容的设置操作,包括:
①缓存配置;
②数据库的连接配置(如果基于Spring 管理,则可以免除此配置);
③类别名配置;
④相关的资源文件映射配置(一张表一个资源文件)。
在src/resources/目录下创建mybatis.cfg.xml 文件
<?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>
<settings>
<setting name="cacheEnabled" value="true"/>
</settings>
<typeAliases>
<typeAlias type="cn.mldn.vo.News" alias="News"/>
</typeAliases>
<environments default="development">
<!-- 配置数据源的相关信息 -->
<environment id="development">
<transactionManager type="jdbc" /> <!-- 使用JDBC方式管理 -->
<dataSource type="POOLED"> <!-- 设置数据源类型,此时为POOLED -->
<property name="driver" value="org.gjt.mm.mysql.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/mybatisdb" />
<!-- 设置数据库连接的用户名和密码 -->
<property name="username" value="******" />
<property name="password" value="******" />
</dataSource>
</environment>
</environments>
</configuration>
关于“dataSource type=”POOLED””的说明,实际上此处描述的就是数据库的连接类型:
· “POOLED”:表示所有的数据库的连接使用数据库连接池进行保存,性能是最好的;
· “JNDI”:直接使用服务器上配置好的数据库的连接池来进行数据库的连接处理;
· “UNPOOLED”:不使用数据库连接池,每次需要的时候都创建新的连接,性能很差;
关于“”的说明,有两种的事务控制:
· “jdbc”:此操作表示使用JDBC 来实现数据库的事务控制,也是唯一可选的事务控制;
· “MANAGED”:什么都不做,即不提交事务也不回滚事务,具体的操作会由容器来完成。
4、创建Member.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">
<!-- 在每一个配置文件之中实际上都需要有一个独立的命名空间(名字,日后引用就需要此名称) -->
<!-- 考虑到后续要进行相关的日志的配置操作,所以对于这个资源文件都建议设置一个包名称 -->
<!-- 命名空间(Name Space),所以习惯“包名称 + VO名称 + NS” -->
<mapper namespace="vo.mapping.MemberNS">
<!-- 定义要进行数据追加操作的SQL语句,每一个SQL都需要有一个自己独立的ID,这个ID为程序引用 -->
<insert id="doCreate" parameterType="mybatis.vo.Member">
INSERT INTO member(mid,name,age,salary,birthday,note) VALUES (#{mid},#{name},#{age},#{salary},#{birthday},#{note}) ;
</insert>
</mapper>
此时还需要在mybatis.cfg.xml 文件里面进行相关的注册配置;
<!-- 所有的映射文件的配置信息都要求在此处进行定义 -->
<mappers> <!-- 映射文件信息 -->
mapper resource="vo/mapping/Member.xml" />
</mappers>
5、配置完成之后就需要进行数据的操作(准备好对应的数据库),那么如果要进行操作,则需要通过以下的几个程序类完成:
· DOC 文档类:mybatis-3.2.3-javadoc.jar;
· MyBatis 资源文件的读取需要使用Reader、InputStream;
· 在MyBatis 之中所有的连接必须通过连接工厂取得:
·org.apache.ibatis.session.SqlSessionFactory;
实现具体的增加操作 —— TestMemberInsert.java
@Test
public void testInsert() throws Exception {
// 1、需要读取mybatis.cfg.xml配置文件,因为所有的数据库连接以及配置文件路径
// 因为此时mybatis.cfg.xml保存在CLASSPATH路径中,所以利用Resources类才可以加载CLASSPATH路径下的文件
InputStream input = Resources.getResourceAsStream("mybatis.cfg.xml") ;
// 2、当取得了配置文件信息之后就需要通过该配置文件信息创建数据库的连接工厂类对象
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(input) ;
// 3、通过SqlSessionFactory可以取得一个SqlSession接口对象, 利用SqlSession可以实现数据操作
SqlSession session = factory.openSession() ;
// 4、创建VO类对象,所有的数据保存在VO类里面
Member vo = new Member() ;
vo.setMid("hello - "+1);
vo.setAge(15);
vo.setBirthday(new Date());
vo.setName("小李");
vo.setSalary(500.0);
vo.setNote("www.mldnjava.cn");
// 5、进行数据保存控制,使用指定NS中的指定的语句处理本次执行
int len =session.insert("cn.mldn.vo.mapping.MemberNS.doCreate", vo) ;
// 6、提交事务,事务需要自己手工提交
session.commit();
// 7、关闭所有的操作资源
session.close();
input.close();
}
通过以上代码可以发现,用户根本就不用关系具体的JDBC 实现,只需要写好对应的SQL语句即可。