|
MyBatis和ibatis我现在只知道配置文件有点不同,读取配置文件的类不同。下面给出配置文件。
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<!--mybatis3.0 和ibatis配置文件有点不同-->
<configuration>
<properties resource="jdbc.properties" />
<environments default="tayfer">
<environment id="tayfer">
<!-- 数据源 -->
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="${driver}" />
<property name="url" value="${url}" />
<property name="username" value="${username}" />
<property name="password" value="${password}" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="Person.xml" />
</mappers>
</configuration>
配置文件的头是mybatis3.0哦。<properties resource="jdbc.properties" />这里指定了prooerties文件位置,不用可以直接把JDBC信息写在里面。
<?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">
<!--<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd"> -->
<!--配置mapper映射-->
<mapper namespace="com.tuojin.mybatis.mapper.StuMapper">
<!--<resultMap type="com.struts.test.Person" id="person">
<id property="id" column="d" javaType="int" jdbcType="INTEGER" />
<result property="name" column="name" javaType="String"
jdbcType="VARCHAR" />
</resultMap>
-->
<select id="selectperson" parameterType="int" resultType="com.struts.test.Person">
select *
from person where id=#{a}
</select>
<select id="selectall" resultType="com.struts.test.Person">
select *
from person
</select>
<insert id="insertperson" parameterType="com.struts.test.Person">
insert into
person(id,name) values (#{id},#{name})
</insert>
<update id="updateperson" parameterType="com.struts.test.Person">
update person
set name=#{name} where id=#{id}
</update>
<delete id="deleteperson" parameterType="int">
delete from person
where id=#{id}
</delete>
</mapper>
这2个XML的头文件时不一样的。可以不用配置resultMap,直接用resultType。不管是查出来的是单条记录还是多天记录都可以直接用parameterType="com.struts.test.Person"。我还发现#{}这里面的参数可以是任意的。与参数无关,那他映射关系就不是根据{}里面的值确定的,空值的话就不行了。很奇怪很不解。package com.struts.test;
import java.io.IOException;
import java.io.Reader;
import java.util.ArrayList;
import java.util.List;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class PersonImpl {
public static SqlSession getSession(){
SqlSession session=null;
try {
Reader reader=Resources.getResourceAsReader("configuration.xml");
SqlSessionFactory sqlmapper=new SqlSessionFactoryBuilder().build(reader);
session=sqlmapper.openSession();
} catch (IOException e) {
e.printStackTrace();
}
return session;
}
public static void main(String[] args){
SqlSession session=PersonImpl.getSession();
/*List<Person> person=(ArrayList<Person>)session.selectList("selectall");
for(Person p:person)
System.out.print(p);*/
/* Person p1=new Person();
p1.setId(4);
p1.setName("hongbin");
session.insert("insertperson",p1);
session.commit();*/
/*Person p1=new Person();
p1.setId(2);
p1.setName("hongbin");
session.update("updateperson", p1);
session.commit();*/
/* session.delete("deleteperson", 2);
session.commit();*/
Person person=(Person)session.selectOne("selectperson", 1);
System.out.print(person);
}
}
这些就是实现方法了;简单的单表查询。继续学习中........ |
|
|