搭建一个简单的mybatis框架需要的几个步骤:
1. 导入mybatis和oracledriver的jar包
2. src或者其他位置创建一个全局连接配置文件,文件名任意
<?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="username" value="test1"/>
<property name="password" value="sa"/>
<property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl"/>
<property name="driver" value="oracle.jdbc.OracleDriver"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/batis/entity/mapper/Student.mapper.xml"/>
</mappers>
</configuration>
3. 新建一个表,测试增删改查4. 配置实体类5. 配置mapper文件
<?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="zwtest">
<resultMap type="com.batis.entity.Student" id="stu">
<id column="id" jdbcType="NUMERIC" property="id"/>
<result column="name" jdbcType="VARCHAR" property="name"/>
<result column="age" jdbcType="NUMERIC" property="age"/>
</resultMap>
<sql id="columns">
ID,NAME,AGE
</sql>
<select id="selectAll" resultMap="stu">
select
<include refid="columns"/>
from student
</select>
<delete id="deletestu" parameterType="java.lang.Integer">
delete from student where id = #{id,jdbcType=NUMERIC}
</delete>
<insert id="insertstu" parameterType="java.lang.Integer">
insert into student values (#{id,jdbcType=NUMERIC},#{name,jdbcType=VARCHAR},#{age,jdbcType=NUMERIC})
</insert>
<update id="updatestu" parameterType="com.batis.entity.Student">
update student set name=#{name,jdbcType=VARCHAR},age=#{age,jdbcType=NUMERIC}
where id=#{id,jdbcType=NUMERIC}
</update>
</mapper>
6. 获取sqlsession
static{
try {
Reader reader=Resources.getResourceAsReader("batis.xml");
SqlSessionFactory ssb=new SqlSessionFactoryBuilder().build(reader);
SqlSession session=ssb.openSession();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
7. 类型处理器 typehandler
public class StringTypeHandler implements TypeHandler {
@Override
public Object getResult(ResultSet rs, String columnname) throws SQLException {
// TODO Auto-generated method stub
return rs.getString(columnname);
}
@Override
public Object getResult(CallableStatement cs, int columnindex)
throws SQLException {
// TODO Auto-generated method stub
return cs.getString(columnindex);
}
@Override
public void setParameter(PreparedStatement ps, int i, Object parameter,
JdbcType arg3) throws SQLException {
// TODO Auto-generated method stub
ps.setString(i, (String)parameter);
}
}
在全局配置文件里的configuration下加入:
<typeHandlers>
<typeHandler handler="com.batis.util.StringTypeHandler" javaType="String" jdbcType="VARCHAR"/>
</typeHandlers>
ps:注意顺序问题