Mybatis的CRUD
1.修改配置文件Category.xml,提供CRUD对应的sql语句。
<?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="mybatis.pojo">
<insert id="addCategory" parameterType="Category">
insert into category ( name ) values (#{name})
</insert> <delete id="deleteCategory" parameterType="Category">
delete from category where id= #{id}
</delete> <select id="getCategory" parameterType="_int" resultType="Category">
select * from category where id= #{id}
</select> <update id="updateCategory" parameterType="Category">
update category set name=#{name} where id=#{id}
</update>
<select id="listCategory" resultType="Category">
select * from category
</select>
</mapper>
2.增加(C)
向数据库中插入10条数据
private void Myinset() throws IOException {
create();
for (int i = 0; i < 10; i++) {
Category category = new Category();
category.setName("xiaomi" + i);
session.insert("addCategory", category);
}
listAll(session);
close();
}
通过session.insert调用addCategory对应的SQL语句,addCategory对应的插入sql语句,#{name}会自动获取category对象的name属性值
<insert id="addCategory" parameterType="Category">
insert into category ( name ) values (#{name})
</insert>
3.删除(D)
删除id=6的对象
private void Mydelete() throws IOException {
create();
Category category = new Category();
category.setId(6);
session.delete("deleteCategory", category);
listAll(session);
close();
}
通过session.delete调用deleteCategory对应的SQL语句,deleteCategory对应删除sql语句,#{id}会获取category对象的id。
<delete id="deleteCategory" parameterType="Category">
delete from category where id= #{id}
</delete>
4.更新(U)
通过session.update进行修改。updateCategory对应的sql语句,#{name}和#{id}获取category对象的name和id。
<update id="updateCategory" parameterType="Category">
update category set name=#{name} where id=#{id}
</update>
private void Myupdate() throws IOException {
create();
Category category = session.selectOne("getCategory", 3);
category.setName("修改了的Category名字");
session.update("updateCategory", category);
listAll(session); }
5.查询(R)
<1>查询所有
private void Allquery() throws IOException {
create();
listAll(session);
close();
}
对应的sql查询语句:
<select id="listCategory" resultType="Category">
select * from category
</select>
<2>根据id查询
通过session.selectOne获取id=3的记录,Category category= session.selectOne("getCategory",3),getCategory对应的sql语句:
<select id="getCategory" parameterType="_int" resultType="Category">
select * from category where id= #{id}
</select>
private void Myquery() throws IOException {
create();
Category category = session.selectOne("getCategory", 3);
System.out.println(category.getName());
close();
}
testCRUD.java
package mybatis.test; import java.io.IOException;
import java.io.InputStream;
import java.util.List; import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder; import mybatis.pojo.Category; public class testCRUD { private SqlSession session;
private InputStream inputStream;
private SqlSessionFactory sqlSessionFactory; public testCRUD() throws IOException {
// TODO Auto-generated constructor stub
String resource = "mybatis-config.xml";
this.inputStream = org.apache.ibatis.io.Resources.getResourceAsStream(resource);
this.sqlSessionFactory = new SqlSessionFactoryBuilder().build(this.inputStream);
} public void create() throws IOException {
session = sqlSessionFactory.openSession();
} public void close() {
session.commit();
session.close();
} // 1.增加
private void Myinset() throws IOException {
create();
for (int i = 0; i < 10; i++) {
Category category = new Category();
category.setName("xiaomi" + i);
session.insert("addCategory", category);
}
listAll(session);
close();
} // 2.删除
private void Mydelete() throws IOException {
create();
Category category = new Category();
category.setId(6);
session.delete("deleteCategory", category);
listAll(session);
close();
} // 3.查询
private void Myquery() throws IOException {
create();
Category category = session.selectOne("getCategory", 3);
System.out.println(category.getName());
close();
} // 4.更新
private void Myupdate() throws IOException {
create();
Category category = session.selectOne("getCategory", 3);
category.setName("修改了的Category名字");
session.update("updateCategory", category);
listAll(session); } // 5.查询所有
private void Allquery() throws IOException {
create();
listAll(session);
close();
} // 列出所有的对象名字
private void listAll(SqlSession session) {
List<Category> cs = session.selectList("listCategory");
for (Category c : cs) {
System.out.println(c.getName());
}
} public static void main(String[] args) throws IOException {
testCRUD testCRUD = new testCRUD();
// testCRUD.Myinset();
// testCRUD.Mydelete();
// testCRUD.Myquery();
testCRUD.Myupdate();
// testCRUD.Allquery();
}
}