一.mybatis使用的准备工作

1.找到mybatis所需要的jar文件:

mybatis-3.2.3.jar

mybatis-spring-1.2.1.jar

2.解压mybatis-3.2.3.jar文件找到如下两个dtd文件

mybatis-3-config.dtd

mybatis-3-mapper.dtd

3.记住mybatis配置的关键key

mybatis配置:
--映射文件
public id : -//mybatis.org//DTD Mapper 3.0//EN
system id : http://mybatis.org/dtd/mybatis-3-mapper.dtd

--主配置文件
public id : -//mybatis.org//DTD Config 3.0//EN
system  id :http://mybatis.org/dtd/mybatis-3-config.dtd

4.在myeclipse中配置mybatis的环境,即配置dtd文件,以便写代码时有提示

5.将mybatis的dtd文件配置到myeclipse中步骤如下:

二、mybatis无代理全套增删改查

2.1 创建一个javaweb项目MyBatis_Part1

2.2 在项目的src下创建Configuration.xml主配置文件

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd" >
  3. <configuration>
  4. <!-- 路径别名配置 -->
  5. <typeAliases>
  6. <typeAlias type="com.entity.Dept" alias="Dept"/>
  7. </typeAliases>
  8.  
  9. <!-- 链接数据库的环境配置,development开发模式 -->
  10. <environments default="development">
  11. <environment id="development">
  12. <!-- jdbc管理事务 -->
  13. <transactionManager type="jdbc"/>
  14. <!-- 数据源配置 -->
  15. <dataSource type="POOLED">
  16. <property name="driver" value="oracle.jdbc.driver.OracleDriver"/>
  17. <property name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:orcl"/>
  18. <property name="username" value="scott"/>
  19. <property name="password" value="tiger"/>
  20. </dataSource>
  21.  
  22. </environment>
  23. </environments>
  24. <!-- 注册映射文件 -->
  25. <mappers>
  26. <mapper resource="com/mapper/DeptMapper.xml"/>
  27. </mappers>
  28.  
  29. </configuration>

2.3 在src下的com.entity包下创建Dept.java文件

  1. package com.entity;
  2.  
  3. public class Dept {
  4. private int deptno;
  5. private String dname;
  6. private String loc;
  7.  
  8. public Dept() {
  9. }
  10.  
  11. public Dept(int deptno, String dname, String loc) {
  12. this.deptno = deptno;
  13. this.dname = dname;
  14. this.loc = loc;
  15. }
  16.  
  17. public int getDeptno() {
  18. return deptno;
  19. }
  20.  
  21. public void setDeptno(int deptno) {
  22. this.deptno = deptno;
  23. }
  24.  
  25. public String getDname() {
  26. return dname;
  27. }
  28.  
  29. public void setDname(String dname) {
  30. this.dname = dname;
  31. }
  32.  
  33. public String getLoc() {
  34. return loc;
  35. }
  36.  
  37. public void setLoc(String loc) {
  38. this.loc = loc;
  39. }
  40.  
  41. @Override
  42. public String toString() {
  43. return "Dept [deptno=" + deptno + ", dname=" + dname + ", loc=" + loc
  44. + "]";
  45. }
  46.  
  47. }

2.4 在src下的com.mapper包下创建DeptMapper.java文件

  1. package com.mapper;
  2.  
  3. import java.util.List;
  4.  
  5. import com.entity.Dept;
  6.  
  7. /**
  8. * 映射接口
  9. * @author pc
  10. *
  11. */
  12. public interface DeptMapper {
  13. /**
  14. * 查询所有
  15. * @return
  16. */
  17. public List<Dept> getAll();
  18. /**
  19. * 根据id查询
  20. * @param id
  21. * @return
  22. */
  23. Dept findId(int deptno);
  24. /**
  25. * 修改对象
  26. * @param dept
  27. * @return
  28. */
  29. int updateDept(Dept dept);
  30. /**
  31. * 保存
  32. * @param dept
  33. * @return
  34. */
  35. int saveDept(Dept dept);
  36. /**
  37. * 删除
  38. * @param id
  39. * @return
  40. */
  41. int deleteById(int id);
  42.  
  43. }

2.5 在src下的com.mapper包下创建DeptMapper.xml映射文件

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
  3. <!-- namespace的值,
  4. 如果用有代理的模式实现增删改,那么值必须是映射接口的全路径,
  5. 如果用无代理模式实现增删改,那么值可以是任意的 ,但是一般情况是映射接口的全路径-->
  6. <mapper namespace="test">
  7. <!-- id的值必须要和映射接口的方法名保持一致, -->
  8. <!-- 查询所有 -->
  9. <select id="getAll" resultType="Dept">
  10. select * from dept
  11. </select>
  12.  
  13. <!--2. 根据id查询 -->
  14. <!-- parameterType参数类型 -->
  15. <select id="findId" resultType="Dept" parameterType="int">
  16. select * from dept where deptno=#{deptno}
  17. </select>
  18.  
  19. <!-- 3.修改 -->
  20. <update id="updateDept" parameterType="Dept">
  21. update dept set dname=#{dname},loc=#{loc} where deptno=#{deptno}
  22. </update>
  23.  
  24. <!-- 4.保存 -->
  25. <insert id="saveDept" parameterType="Dept">
  26. insert into dept values(#{deptno},#{dname},#{loc})
  27. </insert>
  28.  
  29. <!-- 5.删除 -->
  30. <delete id="deleteById" parameterType="int">
  31. delete from dept where deptno=#{deptno}
  32. </delete>
  33. </mapper>

2.6 在src下的com.util包下创建MyBatisUtil.java

  1. package com.util;
  2.  
  3. import java.io.InputStream;
  4. import java.io.Reader;
  5.  
  6. import org.apache.ibatis.io.Resources;
  7. import org.apache.ibatis.session.SqlSession;
  8. import org.apache.ibatis.session.SqlSessionFactory;
  9. import org.apache.ibatis.session.SqlSessionFactoryBuilder;
  10.  
  11. /**
  12. * 获取sqlsession工具类
  13. * @author pc
  14. *
  15. */
  16. public class MyBatisUtil {
  17. //定义sqlsessionFactory对象
  18. private static SqlSessionFactory sqlSessionFactory=null;
  19.  
  20. static{
  21. //读取xml文件
  22. InputStream is=MyBatisUtil.class
  23. .getClassLoader()
  24. .getResourceAsStream("Configuration.xml");
  25. //Reader rader=Resources.getResourceAsReader("Configuration.xml");
  26.  
  27. //创建sqlsessionFactory对象
  28. sqlSessionFactory=new SqlSessionFactoryBuilder().build(is);
  29.  
  30. }
  31. /**
  32. * 获取SqlSession对象的方法
  33. * @param commit 如果为true表示执行完操作自动提交事务,false反之
  34. * @return
  35. */
  36. public static SqlSession getSqlSession(boolean iscommit){
  37. return sqlSessionFactory.openSession(iscommit);
  38. }
  39.  
  40. }

2.7 在src下的com.mapper.impl包下创建DeptMapperImpl.java

  1. package com.mapper.impl;
  2.  
  3. import java.util.List;
  4.  
  5. import org.apache.ibatis.session.SqlSession;
  6.  
  7. import com.entity.Dept;
  8. import com.mapper.DeptMapper;
  9. import com.util.MyBatisUtil;
  10.  
  11. public class DeptMapperImpl implements DeptMapper {
  12. /**
  13. * 1.查询所有
  14. */
  15. public List<Dept> getAll() {
  16. //1.获取sqlsession,执行完操作不自动提交事务
  17. SqlSession sqlSession=MyBatisUtil.getSqlSession(false);
  18.  
  19. //2.调用方法执行操作,
  20. //Stirng类型的参数=映射文件的namespace的值.映射文件的id
  21. List<Dept> list=sqlSession.selectList("test.getAll");
  22. //3.关闭sqlsession
  23. sqlSession.close();
  24. return list;
  25. }
  26. /**
  27. * 2.查询单条
  28. */
  29. public Dept findId(int deptno) {
  30. //1.获取sqlsession,执行完操作不自动提交事务
  31. SqlSession sqlSession=MyBatisUtil.getSqlSession(false);
  32.  
  33. Dept dept=sqlSession.selectOne("test.findId", deptno);
  34.  
  35. sqlSession.close();
  36. return dept;
  37. }
  38.  
  39. /**
  40. * 3.添加
  41. */
  42. public int saveDept(Dept dept) {
  43. //1.获取sqlsession,执行完操作不自动提交事务
  44. SqlSession sqlSession=MyBatisUtil.getSqlSession(true);
  45.  
  46. int num=sqlSession.insert("test.saveDept", dept);
  47.  
  48. sqlSession.close();
  49. return num;
  50. }
  51. /**
  52. * 4.删除
  53. */
  54. public int deleteById(int id) {
  55. //1.获取sqlsession,执行完操作不自动提交事务
  56. SqlSession sqlSession=MyBatisUtil.getSqlSession(true);
  57.  
  58. int num=sqlSession.delete("test.deleteById", id);
  59. sqlSession.close();
  60. return num;
  61. }
  62.  
  63. /**
  64. * 5.修改
  65. */
  66. public int updateDept(Dept dept) {
  67. //1.获取sqlsession,执行完操作不自动提交事务
  68. SqlSession sqlSession=MyBatisUtil.getSqlSession(true);
  69.  
  70. int num=sqlSession.update("test.updateDept", dept);
  71. sqlSession.close();
  72. return num;
  73. }
  74.  
  75. }

2.8 在src下的com.test包下创建Test.java

  1. package com.test;
  2.  
  3. import java.util.List;
  4.  
  5. import com.entity.Dept;
  6. import com.mapper.DeptMapper;
  7. import com.mapper.impl.DeptMapperImpl;
  8.  
  9. public class Test {
  10.  
  11. /**
  12. * @param args
  13. */
  14. public static void main(String[] args) {
  15. DeptMapper mapper=new DeptMapperImpl();
  16.  
  17. System.out.println("-------------3.添加--------------");
  18. /* Dept savedept=new Dept(60, "学术部", "8号楼");
  19. int num= mapper.saveDept(savedept);
  20. if(num>0){
  21. System.out.println("insert success");
  22. }else{
  23.  
  24. System.out.println("insert fail");
  25. }
  26. */
  27. System.out.println("----------1.查询所有--------------");
  28.  
  29. List<Dept> list=mapper.getAll();
  30. for (Dept dept : list) {
  31. System.out.println(dept);
  32. }
  33. System.out.println("----------2.查询单条--------------");
  34. Dept dept= mapper.findId(10);
  35. System.out.println(dept);
  36.  
  37. System.out.println("-----------4.修改--------");
  38. /* Dept updatedept=mapper.findId(60);
  39. updatedept.setDname("huolly11");
  40. updatedept.setLoc("222");
  41.  
  42. int upnum= mapper.updateDept(updatedept);
  43. if(upnum>0){
  44. System.out.println("update success");
  45. }else{
  46. System.out.println("update fail");
  47.  
  48. }*/
  49. System.out.println("------------6.删除---------------");
  50. /* Dept deldept=mapper.findId(50);
  51. int delnum=mapper.deleteById(deldept.getDeptno());
  52. if(delnum>0){
  53. System.out.println("delete success");
  54. }else{
  55. System.out.println("delete fail");
  56.  
  57. }*/
  58. }
  59.  
  60. }

1.MyBaits无代理全套增删改的更多相关文章

  1. 5、Spring+Struts2+MyBatis+分页(mybatis无代理)增删改查

    1.创建如下项目结构 2.在src下的com.entity包下创建Dept.java package com.entity; /** * 部门表 * @author Holly老师 * */ publ ...

  2. 告别无止境的增删改查:Java代码生成器

    对于一个比较大的业务系统,我们总是无止境的增加,删除,修改,粘贴,复制,想想总让人产生一种抗拒的心里.那有什么办法可以在正常的开发进度下自动生成一些类,配置文件,或者接口呢?   有感于马上要做个比较 ...

  3. 告别无止境的增删改查--Java代码生成器

    转自:http://www.cnblogs.com/zhuYears/archive/2012/02/29/2373491.html 告别无止境的增删改查--Java代码生成器 有感于马上要做个比较大 ...

  4. 仿联想商城laravel实战---5、无刷新的增删改查(动态页面更新的三种方式(html))

    仿联想商城laravel实战---5.无刷新的增删改查(动态页面更新的三种方式(html)) 一.总结 一句话总结: 直接js增加删除修改html 控制器直接返回处理好的页面 用双向绑定插件比如vue ...

  5. Hibernate全套增删改查+分页

    1.创建一个web工程 2.导入jar包 3.创建Student表 4.创建实体类 package com.entity; public class Student { private Integer ...

  6. 3.struts2访问Servlet API,并和mybaits实现全套增删改查

    1.创建数据库脚本userinfo.sql prompt PL/SQL Developer import file prompt Created on 2016年5月19日 by pc set fee ...

  7. 14.hibernate的反向生成实现全套增删改查

    图片顺序就是步骤顺序 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.

  8. 5.Hibernate实现全套增删改查和ajax异步分页

    1.1 创建如下oracle数据库脚本 drop sequence seq_stu; create sequence SEQ_STU minvalue maxvalue start increment ...

  9. SSH 两个表全套增删改(运动员住宿管理)

    0.创建如下oracle的命令 create table HOTALINFO ( HOTALID ) not null, HOTALNAME ) not null, HOTALADDRESS ) no ...

随机推荐

  1. gamma

    图:显卡(驱动程序)上的Gamma设置 图:ACDSEE中的曝光调节 二. 什么是Gamma? 2.1. 显示器Gamma曲线 Gamma可能源于CRT(显示器/电视机)的响应曲线,即其亮度与输入电压 ...

  2. CODE[VS]-数的计算-递推-天梯白银

    题目描述 Description 我们要求找出具有下列性质数的个数(包含输入的自然数n): 先输入一个自然数n(n<=1000),然后对此自然数按照如下方法进行处理: 1.不作任何处理; 2.在 ...

  3. unity3d和php后台简单交互--二

    上次我们讨论了u3d和php的简单交互,现在我们接着讨论u3d和php交互,这里我们讨论的是php的后台大家可以延伸为其他语言.在实现的开发中我们很少通过发送字符或者字段到服务器上的,我们一般会请求包 ...

  4. Android Studio新手

    目标:Android Studio新手–>下载安装配置–>零基础入门–>基本使用–>调试技能–>构建项目基础–>使用AS应对常规应用开发 AS简介 经过2年时间的研 ...

  5. 【NOIP2011提高组】选择客栈

    题目不附了,是一个单纯的ST模型,但是考验各种常数优化. 最大的优化是对于同颜色的客栈来说,如果1号和2号成功配对了,那么1和3,1和4都可以成功配对,那么只要找到一对成功配对的,我们就直接加上剩下的 ...

  6. 仿qq的条目抽屉动画效果_ViewDragHelper

    GitHub地址: https://github.com/OOOOOldZhu/DrawerItemView import android.content.Context; import androi ...

  7. html5的116个标签

    基础   标签 描述 <!DOCTYPE> 定义文档类型. <html> 定义 HTML 文档. <title> 定义文档的标题. <body> 定义文 ...

  8. Conversion to Dalvik format failed with error 1(android)

    1.如果不修改android sdk版本,则使用project clean 命令作用于某工程即可. (该处理方式只是在高版本中兼容了低版本工程,未真正意义上的升级) 2.如果修改android sdk ...

  9. springmvc配置aop

    直接看代码 springmvc中的配置aop对 controller和它的子包进行拦截 springmvc中的配置 <!--xml头部配置需要有这几行代码--> xmlns:aop=&qu ...

  10. 学习Java第一篇——Java 安装及环境搭配

    内容提要: 1.下载JDK: 2.安装JDK: 3.配置JDK;   第一,下载JDK:  1.登陆网址:www.oracle.com 2.点击 Downloads 3.选择 Java SE 4.选择 ...