CRUD操作:增删改查
例子(记得导入mybatis和mysql的jar包):
javabean:
package com.zw.mybatis;
public class Students {
private int GENDER;
private String SNAME;
private int SID;
public int getGENDER() {
return GENDER;
}
public void setGENDER(int gENDER) {
GENDER = gENDER;
}
public String getSNAME() {
return SNAME;
}
public void setSNAME(String sNAME) {
SNAME = sNAME;
}
public int getSID() {
return SID;
}
public void setSID(int sID) {
SID = sID;
}
public Students() {
}
public Students(int sID, String sNAME ,int gENDER) {
GENDER = gENDER;
SNAME = sNAME;
SID = sID;
}
}
mybatis的配置文件:conf.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>
<!-- 对事务的管理和连接池的配置 -->
<!-- development :开发模式 -->
<!-- work:工作模式 -->
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/hibernate" />
<property name="username" value="root" />
<property name="password" value="" />
</dataSource>
</environment>
</environments>
<!-- mapping 文件路径配置 -->
<mappers>
<mapper resource="com/zw/mybatis/studentsMapper.xml" />
</mappers>
</configuration>
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="com.zw.mybatis.studentsMapper">
<select id="getUser" parameterType="int" resultType="com.zw.mybatis.Students">
select * from students where SID=#{SID}
</select>
<insert id="addUser" parameterType="com.zw.mybatis.Students">
INSERT INTO STUDENTS(SID,SNAME.GENDER) VALUES(#{SID},#{SNAME},#{GENDER})
</insert>
<delete id="deleteUser" parameterType="int">
DELETE FROM STUDENTS WHERE SID=#{SID}
</delete>
<update id="updateUser" parameterType="com.zw.mybatis.Students">
UPDATE STUDENTS SET SNAME=#{SNAME},GENDER=#{GENDER} WHERE SID=#{SID}
</update>
<select id="getAllUsers" resultType="com.zw.mybatis.Students">
SELECT * FROM STUDENTS
</select>
</mapper>
ps:觉得写全类名太烦的:可以在conf.xml设置别名或者默认包名,请自行百度
测试类:
增:
package com.zw.mybatis;
import java.io.InputStream;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class Test {
public static void main(String[] args) {
String resourse = "conf.xml";
InputStream is = Test.class.getClassLoader().getResourceAsStream(resourse);
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
SqlSession session = factory.openSession();
String Statement = "com.zw.mybatis.studentsMapper.addUser";
//这个insert代表手影响的行数
int insert=session.insert(Statement,new Students(2,"zhangwei",1));
//默认是手动提交的
session.commit();
session.close();
//测试结果应为1
System.out.println(insert);
}
}
改:
package com.zw.mybatis;
import java.io.InputStream;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class Test {
public static void main(String[] args) {
String resourse = "conf.xml";
InputStream is = Test.class.getClassLoader().getResourceAsStream(resourse);
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
SqlSession session = factory.openSession();
String Statement = "com.zw.mybatis.studentsMapper.updateUser";
//这个update代表手影响的行数
int update=session.update(Statement,new Students(2,"zhangwei",0));
//默认是手动提交的
session.commit();
session.close();
//测试结果应为1
System.out.println(update);
}
}
删:
package com.zw.mybatis;
import java.io.InputStream;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class Test {
public static void main(String[] args) {
String resourse = "conf.xml";
InputStream is = Test.class.getClassLoader().getResourceAsStream(resourse);
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
SqlSession session = factory.openSession();
String Statement = "com.zw.mybatis.studentsMapper.deleteUser";
//这个update代表手影响的行数
int delete=session.delete(Statement,2);
//默认是手动提交的
session.commit();
session.close();
//测试结果应为1
System.out.println(delete);
}
}
查:
package com.zw.mybatis;
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;
public class Test {
public static void main(String[] args) {
String resourse = "conf.xml";
InputStream is = Test.class.getClassLoader().getResourceAsStream(resourse);
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
SqlSession session = factory.openSession(true);
String Statement = "com.zw.mybatis.studentsMapper.getAllUsers";
//这里不止一条数据所以用List
List<Students> list=session.selectList(Statement);
//测试结果应为1
session.close();
System.out.println(list);
}
}