1.过程
(0)导入包
(0.1) 目录结构(建的时JavaEE工程,其他的都一样,只是lib的位置变了罢了)
(1)创建全局配置文件
<?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="db.properties"/>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/db1?useUnicode=true&characterEncoding=utf8"/>
<property name="username" value="root"/>
<property name="password" value="dljs0922"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="mybatis/sql_map/user.xml"></mapper>
</mappers>
</configuration>
(2)创建sqlmap文件(就是映射文件)
<?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="find_by_password" parameterType="String" resultType="mybatis.model.User">
select * from user where password=#{password}
</select>
</mapper>
(3)将映射文件在配置文件中声明
<mappers>
<mapper resource="mybatis/sql_map/user.xml"></mapper>
</mappers>
(4)创建一个model去接纳MySQL里的表
package mybatis.model;
public class User {
private String name;
private String password;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
", password='" + password + '\'' +
'}';
}
}
(4.1)数据库创建表(自己创建,自己插入数据)
(5)测试(test)
package mybatis.test;
import mybatis.model.User;
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.junit.Test;
import java.io.IOException;
import java.io.InputStream;
public class test {
@Test
public void test1() throws IOException {
//加载配置文件
InputStream stream = Resources.getResourceAsStream("SqlMapConfig.xml");
//加载xml到工厂创造者
SqlSessionFactory build = new SqlSessionFactoryBuilder().build(stream);
//利用build创造会话类
SqlSession sqlSession = build.openSession();
//调用sqlsession实现sql语句
User user = sqlSession.selectOne("find_by_password", "1234");
System.out.println(user);
//关闭会话
sqlSession.close();
}
}
2.结果完美
User{name='jiang', password='1234'}`在这里插入代码片`
3.感想
(1)感觉这个框架好像没有简化很多操作。。。
(2)日志报错信息很重要,可以很好的定位到问题所在
(3)注意一下xml配置的导入方式,很多框架都是用Resources类来导入的。