mybatis开发过程
这里写的只是大致的开发过程,没有对每个具体过程中具体内容进行分析,因为我还比较菜,语言组织能力又差。
全局配置文件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>
<!-- -->
<properties resource="config/db.properties">
</properties>
<environments default="development">
<environment id="development">
<!-- 使用jdbc事务管理,目前由mybatis来管理 -->
<transactionManager type="JDBC"/>
<!-- 数据库连接池,目前又mybatis来管理 -->
<dataSource type="POOLED">
<property name="driver" value="${sqlserver_driver}"/>
<property name="url" value="${sqlserver_url}"/>
<property name="username" value="${sqlserver_userName}"/>
<property name="password" value="${sqlserver_password}"/>
</dataSource>
</environment>
</environments>
<!-- 映射文件 -->
<mappers>
<mapper resource="zzu/qg/mybatis/mapper/User.xml"/>
<mapper resource="zzu/qg/mybatis/mapper/UserMapper.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="test">
<select id="findUserById" parameterType="int" resultType="zzu.qg.mybatis.entity.User">
select * from [user] where id=#{value}
</select>
<insert id="insertUser" parameterType="zzu.qg.mybatis.entity.User">
insert into [user] values(#{userName},#{password},#{sex},#{birthday})
</insert>
</mapper>
接下来,就开始编写java程序。
public class TestMybatis {
@Test
public void findUserById(){
String resource="config/mybatis/mybatis-config.xml";
InputStream inputStream=null;
try {
inputStream=Resources.getResourceAsStream(resource);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//根据配置文件的文件输入流创建sqlsession工厂
SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);
//创建sqlsession
SqlSession sqlSession=sqlSessionFactory.openSession();
//System.out.println("----");
User user=sqlSession.selectOne("test.findUserById", 1);
//System.out.println("++++");
System.out.println(user);
//sqlsession执行sql语句完毕后,对数据库的操作信息仍然在内存中停留,需要调用commit()方法
//把内存里边的数据更新到数据库中。
sqlSession.commit();
sqlSession.close();
}
}