在平时的工作中对于web工程的持久层框架没有什么应用(我所在的项目使用JDBC),所以还是得靠自己在平时给自己充电。在这里学习并记录一下mybatis的学习过程和所见所得。
首先我们需要新建一个java工程,这里就不再赘述,之后我们导入相应的jar包,由于时间的关系我这里就导入了最新的jar包
然后我们就需要开始我们的第一个测试工程了,先准备数据库中的表格,在我这里简单的建一张测试使用的T_USER,简单的插入一条测试的数据
我在这里改了改顺序,我们从测试的类开始来分析使用Mybatis,在这里我的测试类是这么来触发的。
public static void main(String[] strs){
//mybatis 配置文件名,和自己的新建习惯有关
String resource = "config.xml";
//在这里使用类加载器只是方便我们找到我们的文件
//如果使用不同的路径或者是在服务器上面我们可以不这么使用这个,关键是我们要取得我们配置文件的input
InputStream is = MybatisTest.class.getClassLoader().getResourceAsStream(resource);
//构建sqlSession的工厂
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is);
//创建能执行映射文件中sql的sqlSession
SqlSession session = sessionFactory.openSession();
//这个statement其实就是我们的方法名称,但是有所区别的是这个地方
//这个方法的名称其实是nameSpace.function
//由于我在这里的空间nameSpace 是11111所以就会出现这个情况
String statement = "11111.getUser";
//调用我们的方法,具体为什么这么写之后会提及
UserVO user = session.selectOne(statement, 1);
//查看我们获得的Bean是不是我们数据库中的数据
//注:在我们的数据库中总是会使用USER_NAME这种的字段命名,
//所以在对应到我们的VO的时候我们也要使用下划线隔断的方式进行属性的命名
System.out.println(user.getUser_Name()+" "+user.getUser_Id()+" "+user.getRemark());
}
我们可以看到这个测试类在获取数据库中信息的时候基本只分为这几个步骤
1.加载配置文件
2.通过配置文件的数据流创建session工厂类
3.通过session工厂类来生成一个新的session
4.通过获得的session调用方法(方法名,数据)
所以我们在这里可以反向的探究我们需要配置的文件
1.需要先配置一个总的配置文件config.xml”
2.需要对于我们的具体的方法有个配置文件
3.需要将总配置文件和方法配置文件进行关联
4.需要一个数据库的Bean类
由此我们才有了一下配置的需求
总配置文件
<?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>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<!-- 配置数据库连接信息 -->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/mydb" />
<property name="username" value="root" />
<property name="password" value="sunsun314" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="mybatisTest/mapping/userMapping.xml"/>
</mappers>
</configuration>
具体方法配置文件
<?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="11111">
<select id="getUser" parameterType="int"
resultType="mybatisTest.vo.UserVO">
select * from T_USER where USER_ID=#{userId}
</select>
</mapper>
一个对应的bean类
然后我们就能够通过执行我们的测试类进行简单的DEMO了