mybatis随笔

 

搭建一个简单的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:注意顺序问题

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值