第一步:导入Jar包
第二步:核心配置文件SqlMapConfig.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> <!--配置数据源 事务--> <environments default="test"> <environment id="test"> <!--事务 JDBC/MANAGED 自己管理去--> <transactionManager type="JDBC"/> <!-- 数据源:POOLED/UNPOOLED/JNDI --> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/classes?charsetEncoding=utf8"/> <property name="username" value="root"/> <property name="password" value="root"/> </dataSource> </environment> <environment id="deploy"> <!--事务 JDBC/MANAGED 自己管理去--> <transactionManager type="JDBC"/> <!-- 数据源:POOLED/UNPOOLED/JNDI --> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/classes?charsetEncoding=utf8"/> <property name="username" value="root"/> <property name="password" value="root"/> </dataSource> </environment> </environments> <!--映射文件Mapper--> <mappers> <mapper resource="cn/mybatis/PersonMapper.xml"/> </mappers> </configuration>第三步:建一个实体类Person.java
package cn.mybatis.domain; /** * Created by *** on 2017/3/23. */ public class Person { private Integer cid; private String name; private String description; public Integer getCid() { return cid; } public void setCid(Integer cid) { this.cid = cid; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } @Override public String toString() { return "Person{" + "cid=" + cid + ", name='" + name + '\'' + ", description='" + description + '\'' + '}'; } }第四步:建一个数据库 表名classes
第五部:写一个映射文件Mapper 此例名字叫做PersonMapper.xml
<?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="cn.mybatis.PersonMapper"> <!--中间,对象的属性和结果集的字段之间的对应关系--> <resultMap id="personRM" type="cn.mybatis.domain.Person"> <!--主键映射--> <id property="cid" column="CID"/> <!-- 普通字段 property指实体的属性;column结果集的字段名称 --> <result property="name" column="name"/> <result property="description" column="description"/> </resultMap> <!-- 查询,注意Mybatis中如果有填写集合类型,只填写集合中元素的类型 --> <select id="find" resultMap="personRM"> SELECT * FROM classes </select> <!--查询一个 按id查询--> <select id="get" resultType="cn.mybatis.domain.Person" parameterType="Integer"> SELECT * FROM classes WHERE cid=#{cid} </select> <!--新增--> <insert id="insert" parameterType="cn.mybatis.domain.Person"> INSERT INTO classes(name,description) VALUES ('赏金猎人','武功贼高') </insert> <!--修改--> <update id="update" parameterType="cn.mybatis.domain.Person"> UPDATE classes SET name="去去去",description="来来来" WHERE cid=5 </update> <!-- 删除一条 --> <delete id="deleteOne" parameterType="cn.mybatis.domain.Person"> DELETE FROM classes WHERE cid=2 </delete> <!--删除多条 ,整形数组--> <delete id="deleteMore" parameterType="Integer"> DELETE FROM classes WHERE cid IN <foreach collection="array" item="cid" open="(" separator="," close=")"> #{cid} </foreach> </delete> <!--删除多条 List集合--> <delete id="deleteList" parameterType="Integer"> DELETE FROM classes WHERE cid IN <foreach collection="list" item="cid" open="(" separator="," close=")"> #{cid} </foreach> </delete> <!-- 删除多条 Map ids代表map中的Key --> <delete id="deleteMap" parameterType="Map"> DELETE FROM classes WHERE cid IN <foreach collection="ids" item="cid" open="(" separator="," close=")"> #{cid} </foreach> </delete> </mapper>第六步:测试
package cn.mybatis.test; import cn.mybatis.domain.Person; 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.Before; import org.junit.Test; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * Created by ** on 2017/3/23. */ public class TestMybatis { private SqlSessionFactory factory; @Before //最先执行,初始化SessionFactory public void init() throws IOException { String Resource="sqlMapConfig.xml"; InputStream is= Resources.getResourceAsStream(Resource); factory=new SqlSessionFactoryBuilder().build(is); //获得工厂 } @Test //查询所有 public void selectAll(){ SqlSession session=factory.openSession(); //打开session //如何访问mapper中的方法呢? 规则:命名空间 +.+ id List<Person> list=session.selectList("cn.mybatis.PersonMapper.find"); System.out.println(list.size()); for(Person p :list){ System.out.println(p); } } @Test //查询一条 public void get(){ SqlSession session=factory.openSession(); Person p=session.selectOne("cn.mybatis.PersonMapper.get",3); System.out.println(p); } @Test //新增 public void testInsert(){ SqlSession session=factory.openSession(); int p=session.insert("cn.mybatis.PersonMapper.insert"); session.commit(); //提交事务 System.out.println("新增成功"); } @Test //修改 public void testUpdate(){ SqlSession session=factory.openSession(); session.update("cn.mybatis.PersonMapper.update"); session.commit(); System.out.println("修改成功"); } @Test //删除一条 public void testDeleteOne(){ SqlSession session=factory.openSession(); session.delete("cn.mybatis.PersonMapper.deleteOne"); session.commit(); System.out.println("删除一条成功"); } @Test //删除多条 整形数组 public void deleteMore(){ SqlSession session=factory.openSession(); Integer [] ids={5,7}; session.delete("cn.mybatis.PersonMapper.deleteMore",ids); session.commit(); System.out.println("删除多条成功"); } @Test //删除多条 list集合 public void deleteList(){ SqlSession session=factory.openSession(); List<Integer> list =new ArrayList<Integer>(); list.add(3); list.add(4); session.delete("cn.mybatis.PersonMapper.deleteList",list); session.commit(); System.out.println("删除多条成功 list集合类型"); } @Test //删除多条 Map集合 public void deleteMap(){ SqlSession session=factory.openSession(); Map<String,Object> map =new HashMap<String,Object>(); Integer[] ids ={3,6}; map.put("ids",ids); session.delete("cn.mybatis.PersonMapper.deleteMap",map); session.commit(); System.out.println("删除成功"); } }