您的位置:首页 > 其它

Mybatis用接口XML方式进行增删改查

2016-10-27 18:25 579 查看
1.先配好jar包

创建映射文件StudentInfo.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="com.icss.test.StudentDao">
<resultMap type="com.icss.pojo.StuInfo" id="myStudentInfo"></resultMap><!--type是pojo包里的文件,id自取 -->
<select id="findAll" resultMap="myStudentInfo"><!--跟resultMap标签里的id值一样 -->
select * from si where name like
</select>
<select id="findById" resultMap="myStudentInfo">
select * from si where id=#{id} 
</select>
<insert id="add">
insert into si (id,name,age,sex,tel) values
(id=#{id},name=#{name},age=#{age},sex=#{sex},tel=#{tel})
</insert>
<update id="mod">
update si 
<set>
<if test="id != null">
id=#{id},
</if>
<if test="name != null">
name=#{name},
</if>
<if test="age != null">
age=#{age},
</if>
<if test="sex != null">
sex=#{sex},
</if>
<if test="tel != null">
tel=#{tel}
</if>
</set>
where id=#{id}
</update>
<delete id="Del">
delete from si 
<where>
id=#{id}

</where>
</delete>
<select id="findByIds" resultMap="myStudentInfo">
select *from si 
<where>
<if test="id != null">
and id = #{id}
</if>
<if test="tel != null">
and tel = #{tel}
</if>
</where>
</select>
<select id="findByIdMohu" resultMap="myStudentInfo">
select * from si
<where>
<choose>
<otherwise>
and name like '%${name}%'
</otherwise>
</choose>
</where>
</select>

</mapper>

2.写一个Dao文件

package com.icss.test;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import org.apache.ibatis.annotations.Select;

import com.icss.pojo.StuInfo;

public interface StudentDao {

// @Select("select * from si where id=#{id}")
StuInfo findById(String id);//findById是映射文件里面相应标签的id

List<StuInfo> findByIds(@Param("id") String id,@Param("tel") String tel);

List<StuInfo> findByIdMohu(@Param("name") String name);

void Del(String id);
void mod(StuInfo si);

}

3.创建pojo文件,也就是bean文件

package com.icss.pojo;

public class StuInfo {
private String id;
private String name;
private String age;
private String sex;
private String tel;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getTel() {
return tel;
}
public void setTel(String tel) {
this.tel = tel;
}
@Override
public String toString() {
return "StuInfo [id=" + id + ", name=" + name + ",age=" + age + " ,sex=" + sex + ", tel=" + tel + "]\r\n";
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}

}

4.写一个测试主类

package com.icss.test;

import java.io.IOException;

import java.io.Reader;

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;

import com.icss.pojo.StuInfo;

public class TestFind{

private static SqlSessionFactory ssf;
static{
String resource = "mybatis-config.xml";//配置文件
Reader reader = null;
try {
// 加载配置文件,创建会话工厂
reader = Resources.getResourceAsReader(resource);
ssf = new SqlSessionFactoryBuilder().build(reader);
} catch (IOException e) {
throw new RuntimeException(e);
}finally {
try {
reader.close();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}

public static void testFindAll() {
System.out.println("---------------testFindAll----------------");
SqlSession session = null;
//try中未抛出编译期异常
try {
//打开一个session
session = ssf.openSession();
// 执行SQL语句,获得结果
List<StuInfo> list = session.selectList("StudentInfoMap.findAll");//映射文件里面的namespace和id
//打印结果
System.out.println(list);
} finally {
session.close();
}
}

public static void testAMDQ(){
System.out.println("---------------testAMDQ----------------");
SqlSession session = ssf.openSession();
try{

//创建要插入学生表的对象
StuInfo stu = new StuInfo();
stu.setId("9");
stu.setName("james");
stu.setAge("10");
stu.setSex("man");
stu.setTel("1323233");
//插入学生记录
session.insert("StudentInfoMap.add", stu);

//验证插入是否成功
StuInfo dbci = session.selectOne("StudentInfoMap.findById", "9");
System.out.println(dbci);

//修改数据库
stu.setAge("11");
stu.setTel("424323");
session.update("StudentInfoMap.mod", stu);

//验证插入是否成功
dbci = session.selectOne("StudentInfoMap.findById", "9");
System.out.println(dbci);

session.delete("StudentInfoMap.del", "9");
dbci = session.selectOne("StudentInfoMap.findById", "9");
System.out.println(dbci);

//正确的业务执行完之后,提交数据
session.commit();

} catch(Exception e) {
//出现异常,必须回滚
session.rollback();
e.printStackTrace();
} finally {
session.close();
}
}

// public static void testFindById(){ //调用接口注解的方法

// System.out.println("------------FindById-------------");

// SqlSession session = ssf.openSession();

//

// StudentDao dao = session.getMapper(StudentDao.class);//创建Dao对象

//

// System.out.println(dao.findById("2"));//对象调用方法传进去参数

//

// session.close();

// }

public static void testFindByIds(){ //接口XML方法
System.out.println("------------FindById-------------");
SqlSession session = ssf.openSession();

StudentDao dao = session.getMapper(StudentDao.class);//创建Dao对象

dao.findByIds("1", null);

session.close();
}

public static void testDel(){ //接口XML方法
System.out.println("------------FindById-------------");
SqlSession session = ssf.openSession();

StudentDao dao = session.getMapper(StudentDao.class);//创建Dao对象

dao.Del("5");
session.commit();
session.close();
}

public static void testFindByIdMohu(){ //接口XML方法
System.out.println("------------FindById-------------");
SqlSession session = ssf.openSession();

StudentDao dao = session.getMapper(StudentDao.class);//创建Dao对象

dao.findByIdMohu("ja");

session.close();
}

public static void testmod(){ //接口XML方法
System.out.println("------------FindById-------------");
SqlSession session = ssf.openSession();
try{
StudentDao dao = session.getMapper(StudentDao.class);//创建Dao对象
dao.findById("1");

StuInfo si = new StuInfo();
si.setId("1");
si.setTel("12121312131");
dao.mod(si);

dao.findById("1");
session.commit();
} catch(Exception e) {
//出现异常,必须回滚
session.rollback();
e.printStackTrace();
} finally {
session.close();
}
}

public static void main(String[] args) throws IOException {
testDel();
}

}

上面的一些数据库都是自己的,另外我还用了log4j来显示,大体就是这样,一般的项目都是用XML接口的方式,接口注解跟一般XML方式几乎不用

后续还会补充
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  xml mybatis jar