第一步:导入jar包
目的路径在这台电脑的d盘的jar文件下面(这是我自己的路径,记一下防止自己忘记)
第二步:
写文件:mybatis-config.xml
在里面的步骤是:
- 引入数据库连接文件
db.properties
- 配置日志文件(可以没有)
- 然后是配置连接数据库环境
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"></transactionManager>
<!-- POOLED:mybatis自带的数据源,JNDI:基于tomcat的数据源 -->
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${user}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
·第一个<transactionManager type="JDBC"></transactionManager>不能少
·第二个配置数据库的driver,url,username,password不能少
第三步:
写db.properties文件,里面是连接数据库JDBC的相应内容,driver,url,username, password,四个变量的相关内容
第四步:
Mapper.xml这是Mybatis和普通web的一个区别所在,前面的配置文件也是。在Mapper里面,写的都是对数据库的操作,所以其实就是web的DAO文件。
第五步:
最后的过程是测试类。根据相应的功能最后在Mapper里面添加相应对数据库的操作。
接下里是介绍在测试类里面要怎么使用mybatis来对数据库进行操作
先吧连接数据库的文件xml String resource="mybatis-config.xml";写入
InputStream is = Resources.getResourceAsStream(resource);//这是文件输入流可以这么理解
然后创建工厂类来使用Mapper这个文件里面相应的id的对数据库的操作
代码:
mybatis-config.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>
<!-- 引入 database.properties 文件-->
<properties resource="db.properties"/>
<settings>
<setting name="logImpl" value="LOG4J"/>
</settings>
<environments default="development">
<environment id="development">
<!--配置事务管理,采用JDBC的事务管理 -->
<transactionManager type="JDBC"></transactionManager>
<!-- POOLED:mybatis自带的数据源,JNDI:基于tomcat的数据源 -->
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${user}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<!-- 将mapper文件加入到配置文件中 -->
<mappers>
<mapper resource="com/dao/UserMapper.xml"/>
</mappers>
</configuration>
db.properties文件
这是我自个mysql的账号密码
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/smbms?useUnicode=true&characterEncoding=utf-8
user=root
password=123456
Mapper.xml(相当于web的DAO,里面是对数据库的操作)
<?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="com.dao.UserMapper">
<select id="count" resultType="int">
select count(1) as count from smbms_user
</select>
<insert id="add" parameterType="com.pojo.User">
insert into smbms_user(id,userCode,userName,userPassword,gender,birthday,phone,address,userRole,createdBy,creationDate,modifyBy,modifyDate) values(#{id},#{userCode},#{userName},#{userPassword},#{gender},null,#{phone},#{address},#{userRole},#{createdBy},null,#{modifyBy},null)
</insert>
<delete id="deleteUser" parameterType="java.lang.Integer">
delete from smbms_user where id = #{id}
</delete>
<update id="updateUserName" parameterType="com.pojo.User">
update smbms_user set userName=#{userName} where id =#{id}
</update>
</mapper>
最后是测试类
这里面是我对某一个数据库的一个表的增删改查操作,大同小异,不一样的还是你上面mapper.xml里面的文件。
package com.test;
import java.io.IOException;
import java.io.InputStream;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.apache.log4j.Logger;
import org.junit.Test;
import com.mysql.fabric.xmlrpc.base.Data;
import com.pojo.*;
public class UserMapperTest {
private Logger logger=Logger.getLogger(UserMapperTest.class);
@Test
public void Test() {
String resource="mybatis-config.xml";
int count = 0;
SqlSession sqlSession = null;
try {
InputStream is = Resources.getResourceAsStream(resource);
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
sqlSession = factory.openSession();
sqlSession.selectOne("com.dao.UserMapper.count");
logger.debug("UserMapperTest count---> " + count);
}catch(IOException e){
e.printStackTrace();
}finally {
sqlSession.close();
}
}
@Test
public void add(){
String resource="mybatis-config.xml";
int count = 0;
User user=new User();
user.setId(16);
user.setUserCode("1");
user.setUserName("111");
user.setUserPassword("111");
user.setGender(1);
user.setPhone("111");
user.setAddress("111");
user.setUserRole(1);
user.setCreatedBy(1);
user.setModifyBy(1);
SqlSession sqlSession = null;
try {
InputStream is = Resources.getResourceAsStream(resource);
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
sqlSession = factory.openSession();
sqlSession.insert("com.dao.UserMapper.add",user);
sqlSession.commit();
logger.debug("UserMapperTest count---> " + count);
}catch(IOException e){
e.printStackTrace();
}finally {
sqlSession.close();
}
}
@Test
public void deleteTest(){
String resource="mybatis-config.xml";
int count = 0;
SqlSession sqlSession = null;
try {
InputStream is = Resources.getResourceAsStream(resource);
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
sqlSession = factory.openSession();
sqlSession.delete("com.dao.UserMapper.deleteUser",16);
sqlSession.commit();
logger.debug("UserMapperTest count---> " + count);
}catch(IOException e){
e.printStackTrace();
}finally {
sqlSession.close();
}
}
@Test
public void updateTest(){
String resource="mybatis-config.xml";
int count = 0;
User user=new User();
user.setId(16);
user.setUserName("蔡拯雨");
SqlSession sqlSession = null;
try {
InputStream is = Resources.getResourceAsStream(resource);
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
sqlSession = factory.openSession();
sqlSession.insert("com.dao.UserMapper.updateUserName",user);
sqlSession.commit();
logger.debug("UserMapperTest count---> " + count);
}catch(IOException e){
e.printStackTrace();
}finally {
sqlSession.close();
}
}
}
UserMapperTest.java