Mybatis的CRUD操作(基于xml)

来源:互联网 发布:java字符串拼接工具类 编辑:程序博客网 时间:2024/05/19 15:24

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();                          //测试结果应为1System.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();               //测试结果应为1System.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();                 //测试结果应为1System.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);    }}





1 0