目录结构:

数据库:mysql

resource:jdbc.properties

##for Mysqldriver=com.mysql.jdbc.Driverurl=jdbc:mysql://127.0.0.1:3306/mybatisusername=rootpassword=123456

mybaties的配置:mybaties-config.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><!-- 引入 jdbc.properties  --><properties resource="jdbc.properties" /><!-- default属性表示采用哪种配置 --><environments default="development"><!-- 配置情况的一种,可以有多个,根据environments 的default来指定使用哪一种 --><environment id="development"><!-- 配置事务管理 采用JDBC --><transactionManager type="JDBC"/><!-- POOLED:mybatis的数据源,JNDI:基于tomcat的数据源 --><dataSource type="POOLED"><!-- 数据库连接信息 --><property name="driver" value="${driver}" /><property name="url" value="${url}" /><property name="username" value="${username}" /><property name="password" value="${password}" /></dataSource></environment></environments><mappers><!-- 注册userMapper.xml文件, userMapper.xml位于me.gacl.mapping这个包下,所以resource写成me/mapping/userMapper.xml--><mapper resource="me/mapping/userMapper.xml"/></mappers>
</configuration>

首先是domain的代码:

package me.domain;public class user {private int id;private String name;private int age;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}@Overridepublic String toString() {return "User [id=" + id + ", name=" + name + ", age=" + age + "]";}
}

userMapping.xml
主要是sql语句的映射 ….以这种形式在mybaties-cinfig.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,namespace的值习惯上设置成包名+sql映射文件名,这样就能够保证namespace的值是唯一的
例如namespace="me.gacl.mapping.userMapper"就是me.gacl.mapping(包名)+userMapper(userMapper.xml文件去除后缀)-->
<mapper namespace="me.mapping.userMapper"><!-- 在select标签中编写查询的SQL语句, 设置select标签的id属性为getUser,id属性值必须是唯一的,不能够重复使用parameterType属性指明查询时使用的参数类型,resultType属性指明查询返回的结果集类型resultType="me.gacl.domain.User"就表示将查询结果封装成一个User类的对象返回User类就是users表所对应的实体类--><!-- 根据id查询得到一个user对象--><select id="getUser" parameterType="int" resultType="me.domain.user">select * from users where id=#{id}</select><insert id="addUser" parameterType="me.domain.user">insert into  users(name,age) values (#{name},#{age});</insert><update id="updateUser" parameterType="me.domain.user">update users set name=#{name},age=#{age} where id=#{id};</update><delete id="deleteUser" parameterType="int">delete from users where id=#{id};</delete><select id="getAllUser"   resultType="me.domain.user">select * from users;</select>
</mapper>

TestMappingXml:

package me.test;import java.util.List;import me.domain.user;import org.apache.ibatis.session.SqlSession;
import org.junit.Test;import util.MyBatisUtil;public class TestMappingXml {@Testpublic void testAdd(){SqlSession sqlSession = MyBatisUtil.getSqlSession();/*** 映射sql的标识字符串,* me.gacl.mapping.userMapper是userMapper.xml文件中mapper标签的namespace属性的值,* addUser是insert标签的id属性值,通过insert标签的id属性值就可以找到要执行的SQL*/String statement = "me.mapping.userMapper.addUser";//映射sql的标识字符串user user = new user();user.setName("道剑剑非道");user.setAge(400);//执行插入操作sqlSession.insert(statement,user);sqlSession.commit();sqlSession.close();}@Testpublic void testUpdate(){SqlSession sqlSession = MyBatisUtil.getSqlSession(true);String sql = "me.mapping.userMapper.updateUser";user user = new user();user.setName("天际神毓逍遥");user.setAge(800);user.setId(1);sqlSession.update(sql, user);sqlSession.close();}@Testpublic void testDelele(){SqlSession sqlSession = MyBatisUtil.getSqlSession(true);String sql = "me.mapping.userMapper.deleteUser";sqlSession.delete(sql, 2);sqlSession.close();}@Testpublic void testGetAll(){SqlSession sqlSession = MyBatisUtil.getSqlSession();/*** 映射sql的标识字符串,* me.mapping.userMapper是userMapper.xml文件中mapper标签的namespace属性的值,* getAllUsers是select标签的id属性值,通过select标签的id属性值就可以找到要执行的SQL*/String statement = "me.mapping.userMapper.getAllUser";//映射sql的标识字符串//执行查询操作,将查询结果自动封装成List<User>返回List<user> lstUsers = sqlSession.selectList(statement);//使用SqlSession执行完SQL之后需要关闭SqlSessionsqlSession.close();System.out.println(lstUsers);}}

工具类:MyBatisUtil

package util;import java.io.InputStream;import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;public class MyBatisUtil {/*** 获取SqlSessionFactory* @return SqlSessionFactory*/public static SqlSessionFactory getSqlSessionFactory(){String resource = "mybatis-config.xml";//使用类加载器加载mybatis的配置文件(它也加载关联的映射文件)InputStream input = MyBatisUtil.class.getClassLoader().getResourceAsStream(resource);//构建sqlSession的工厂SqlSessionFactory fatory = new SqlSessionFactoryBuilder().build(input);return fatory;}/*** 获取SqlSession* @return SqlSession*/public static SqlSession getSqlSession(){//创建能执行映射文件中sql的sqlSessionreturn getSqlSessionFactory().openSession();}/*** 获取SqlSession* @param isAutoCommit *         true 表示创建的SqlSession对象在执行完SQL之后会自动提交事务*         false 表示创建的SqlSession对象在执行完SQL之后不会自动提交事务,这时就需要我们手动调用sqlSession.commit()提交事务* @return SqlSession*/public static SqlSession getSqlSession(boolean isAutoCommit) {return getSqlSessionFactory().openSession(isAutoCommit);}
}

注意点是:配置文件不要搞错了。

使用Mybaties xml的增删改查相关推荐

  1. ASP.NET操作简单的xml,增删改查

    温习一下对xml的简单操作,贴出来收藏 xml文件格式: <?xml version="1.0" encoding="utf-8"?> <st ...

  2. python 读取与修改 XML(增删改查)

    XML操作 xml 访问与查找 xml 创建与修改 xml 增删改查 -- 综合案例 xml 访问与查找 import xml.etree.ElementTree as ETtree = ET.par ...

  3. XML进阶增删改查及gdv的小知识

    先介绍DategridView控件 表格控件,缩写:dgv,学习到的是几个实用属性的使用方法及所达到的效果. 1.contextMenuStrip:可以绑定该控件,很多控件都是会有的 2.Select ...

  4. 用java编写xml通讯录实现增_删_改_查实验报告_mybatis中的xml方式增删改查

    实体类package cn.liwen.entity;public class User {    private long id; //主键    private String username;/ ...

  5. c# xml的增删改查操作 xmlDocument 的用法

    1.将xml转换为DataTable string path = "";//xml的位置 StringReader sr = null; XmlTextReader xmlRead ...

  6. xml模块 增删改查

    import xml.etree.ElementTree as ETtree = ET.parse("xml test") #open root = tree.getroot() ...

  7. 封装好的实用的读写XML类---增删改查XML

    1.创建一个类:XmlHelper using System; using System.Collections.Generic; using System.Linq; using System.Te ...

  8. oracle 删除xml记录,Oracle之xml的增删改查操作

    工作之余,总结一下xml操作的一些方法和心得! tip: xmltype函数是将clob字段转成xmltype类型的函数,若字段本身为xmltype类型则不需要引用xmltype()函数 同名标签用数 ...

  9. net对XML增删改查

    Pass:看公司代码,配置下拉框的功能,和下拉框的数字转文字.配置xml里面有下拉的value,name,这样界面直接显示数字,然后转译成中文 1.xml文件格式 <?xml version=& ...

  10. 3. mysql的注解驱动的三种方式_上手spring boot项目(三)之spring boot整合mybatis进行增删改查的三种方式。...

    1.引入依赖 org.springframework.boot spring-boot-starter-web org.mybatis.spring.boot mybatis-spring-boot- ...

最新文章

  1. SQL Server 2005系列教学(6) 多表操作及子查询
  2. 在多线程 Python 程序中实现多目标不同缩进格式的 logging
  3. linux下各个头文件及作用总结
  4. Linux下mysqldump的使用
  5. 如何将PPT转换成手机APP
  6. for-each keyword
  7. Halcon|读取3D相机点云数据
  8. java中对map使用entrySet循环
  9. UWP开发入门(十一)——Attached Property的简单应用
  10. [javaSE] 网络编程(浏览器客户端-自定义服务端)
  11. 活动执行手册_如何从一无所知到独立规划陈列手册?
  12. 投放Facebook广告,跑到爆品之后怎样扩量效果更好?
  13. 【转】90后还过五四吗?这些“脸熟”的过来人送给青年10句忠告
  14. kotlin-android-extensions过时了,迁移到ViewBinding
  15. Telnet 发电子邮件 E-mail
  16. 【ubuntu使用排坑】fsckd-cancel-msg:Press Ctrl+C to cancel all filesystem checks
  17. SpringBoot+MongoDB GridFS文件上传、下载、预览实战
  18. codeforces 1090B切题记录
  19. Centos7.4配置与管理DNS服务器
  20. scnprintf和snprintf的区别

热门文章

  1. android room 简书,android Room库使用问题
  2. iqooneo3 如何不用vivo账号下载外部应用_VIVO市场ASO实战详解
  3. 0基础学python,聊聊这半年我是如何自学编程
  4. ZZNU2141: 2333
  5. 佛蒙特大学计算机排名,佛蒙特大学计算机科学与信息系统本科入学要求.pdf
  6. repo的安装和使用
  7. 工业相机——感光元件尺寸介绍
  8. PHP-简单的留言薄功能
  9. 计算机老师素质能力提升计划要求,教师2021个人素质提升计划范文
  10. 全国增值税发票查验平台验证码识别