2.1 创建一个javaweb项目MyBatis_Part1,并创建如下sql脚本

 create user holly identified by sys;
grant dba to holly;
conn holly/sys
create table teacher(id number primary key,tname varchar2(20),pwd varchar2(20));
create sequence seq_teacher;
insert into teacher values(seq_teacher.nextval,'holly','');
insert into teacher values(seq_teacher.nextval,'石头','');
insert into teacher values(seq_teacher.nextval,'朱亚楠','');
insert into teacher values(seq_teacher.nextval,'陈明','');
commit;

2.2 在项目的src下创建Configuration.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>
<!-- 路径别名配置 -->
<typeAliases>
<typeAlias type="com.entity.Dept" alias="Dept"/>
</typeAliases> <!-- 链接数据库的环境配置,development开发模式 -->
<environments default="development">
<environment id="development">
<!-- jdbc管理事务 -->
<transactionManager type="jdbc"/>
<!-- 数据源配置 -->
<dataSource type="POOLED">
<property name="driver" value="oracle.jdbc.driver.OracleDriver"/>
<property name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:orcl"/>
<property name="username" value="scott"/>
<property name="password" value="tiger"/>
</dataSource> </environment>
</environments>
<!-- 注册映射文件 -->
<mappers>
<mapper resource="com/mapper/DeptMapper.xml"/>
</mappers> </configuration>

2.3 在src下的com.entity包下创建Teacher.java实体类

 package com.entity;

 public class Teacher {
private int id;
private String tname;
private String pwd;
public Teacher() {
} public Teacher(String tname, String pwd) {
this.tname = tname;
this.pwd = pwd;
} public Teacher(int id, String tname, String pwd) {
this.id = id;
this.tname = tname;
this.pwd = pwd;
} public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public String getTname() {
return tname;
} public void setTname(String tname) {
this.tname = tname;
} public String getPwd() {
return pwd;
} public void setPwd(String pwd) {
this.pwd = pwd;
} @Override
public String toString() {
return "Teacher [id=" + id + ", pwd=" + pwd + ", tname=" + tname + "]";
}
}

Teacher.java

2.4 在src下的com.mapper包下创建TeacherMapper.java映射接口

 package com.mapper;

 import java.util.List;

 import com.entity.Teacher;

 public interface TeacherMapper {
//1.查所有
List<Teacher> findAll();
//2.根据id查询
Teacher findById(int id);
//3.添加
int saveTeacher(Teacher teacher);
//4.修改
int updateTeacher(Teacher teacher);
//5.删除
int deleteTeacher(int id); }

TeacherMapper.java

2.5在src下的com.mapper包下创建TeacherMapper.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" >
<!-- 如果是有代理,则namespace的值必须是映射接口的全路径 -->
<mapper namespace="com.mapper.TeacherMapper">
<!-- 1.查询所有 -->
<select id="findAll" resultType="Teacher">
select * from teacher
</select> <!-- 2.根据id查询所有 -->
<select id="findById" resultType="Teacher" parameterType="int">
select * from teacher where id=#{id}
</select> <!-- 3.添加 -->
<insert id="saveTeacher" parameterType="Teacher">
insert into teacher values(seq_teacher.nextval,#{tname},#{pwd})
</insert> <!-- 4.修改 -->
<update id="updateTeacher" parameterType="Teacher">
update teacher set tname=#{tname},pwd=#{pwd}
</update> <!-- 5.删除 -->
<delete id="deleteTeacher" parameterType="int">
delete from teacher where id=#{id}
</delete>
</mapper>

TeacherMapper.xml

2.6在src下的com.mapper.impl包下创建TeacherMapperImpl.java映射实现类文件

 package com.mapper.impl;

 import java.util.List;

 import org.apache.ibatis.session.SqlSession;

 import com.entity.Teacher;
import com.mapper.TeacherMapper;
import com.util.MyBatisUtil; public class TeacherMapperImpl implements TeacherMapper {
/**
*1.查询所有
* */
public List<Teacher> findAll() {
SqlSession sqlsession=MyBatisUtil.getSqlSession(false);
//利用反射产生代理对象(动态代理)
TeacherMapper mapper=sqlsession.getMapper(TeacherMapper.class);
try {
List<Teacher> list=mapper.findAll();
sqlsession.close();
return list;
} catch (Exception e) {
e.printStackTrace();
return null;
} }
/**
* 2.查询单条
*/
public Teacher findById(int id) {
SqlSession sqlsession=MyBatisUtil.getSqlSession(false);
TeacherMapper mapper=sqlsession.getMapper(TeacherMapper.class);
Teacher teacher=null;
try {
teacher = mapper.findById(id);
sqlsession.close();
return teacher;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
/**
* 添加
*/
public int saveTeacher(Teacher teacher) {
SqlSession sqlsession=MyBatisUtil.getSqlSession(true);
TeacherMapper mapper=sqlsession.getMapper(TeacherMapper.class);
try {
int num=mapper.saveTeacher(teacher);
sqlsession.close();
return num;
} catch (Exception e) {
e.printStackTrace(); return 0;
}
}
/**
* 4.修改
*/
public int updateTeacher(Teacher teacher) {
SqlSession sqlsession=MyBatisUtil.getSqlSession(false);
TeacherMapper mapper=sqlsession.getMapper(TeacherMapper.class);
try {
int num=mapper.updateTeacher(teacher);
sqlsession.close();
return num;
} catch (Exception e) {
e.printStackTrace();
return 0;
}
}
/**
* 5.根据id删除
*/
public int deleteTeacher(int id) {
SqlSession sqlsession=MyBatisUtil.getSqlSession(false);
TeacherMapper mapper=sqlsession.getMapper(TeacherMapper.class);
try {
int num=mapper.deleteTeacher(id);
sqlsession.close();
return num;
} catch (Exception e) {
e.printStackTrace();
return 0;
}
} }

TeacherMapperImpl.java

2.MyBatis有代理增删改的更多相关文章

  1. MyBatis简单的增删改查以及简单的分页查询实现

    MyBatis简单的增删改查以及简单的分页查询实现 <? xml version="1.0" encoding="UTF-8"? > <!DO ...

  2. Mybatis入门之增删改查

    Mybatis入门之增删改查 Mybatis如果操作成功,但是数据库没有更新那就是得添加事务了.(增删改都要添加)----- 浪费了我40多分钟怀疑人生后来去百度... 导入包: 引入配置文件: sq ...

  3. MyBatis -- 对表进行增删改查(基于注解的实现)

    1.MyBatis对数据库表进行增/删/改/查 前一篇使用基于XML的方式实现对数据库的增/删/改/查 以下我们来看怎么使用注解的方式实现对数据库表的增/删/改/查 1.1  首先须要定义映射sql的 ...

  4. Spring Boot 使用Mybatis注解开发增删改查

    使用逆向工程是遇到的错误 错误描述 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): c ...

  5. Mybatis实现简单增删改查

    Mybatis的简单应用 学习内容: 需求 环境准备 代码 总结: 学习内容: 需求 使用Mybatis实现简单增删改查(以下是在IDEA中实现的,其他开发工具中,代码一样) jar 包下载:http ...

  6. (一)Mybatis基本配置,Statement方式,动态代理增删改查

    首先明白Mybatis是干什么的,之前使用jdbc操作数据库时候要写很多语句,获取光标,连接,获取具体对象进行相应操作,代码过于繁琐,所以现在有了Mybatis,它将这个操作整合在了一起,你不需要关心 ...

  7. 基于SSM之Mybatis接口实现增删改查(CRUD)功能

    国庆已过,要安心的学习了. SSM框架以前做过基本的了解,相比于ssh它更为优秀. 现基于JAVA应用程序用Mybatis接口简单的实现CRUD功能: 基本结构: (PS:其实这个就是用的Mapper ...

  8. SpringMVC,MyBatis商品的增删改查

    一.需求 商品的增删改查 二.工程结构 三.代码 1.Mapper层 (1) ItemsMapperCustom.java package com.tony.ssm.mapper; import ja ...

  9. mybatis中的增删改查操作

    在这一个部分,主要进行增删改查的示例书写. 增删改查可以基于xml的,也可以基于注解的方式. 一:对单条数据的查询 1.目录结构 这个使得目录更加清晰 2.User.java 这个使用以前的user表 ...

随机推荐

  1. 初试KONCKOUT+WEBAPI简单实现增删改查

    初试KONCKOUT+WEBAPI简单实现增删改查 前言 konckout.js本人也是刚刚接触,也是初学,本文的目的是使用ko和asp.net mvc4 webapi来实现一个简单增删改查操作.Kn ...

  2. Microsoft Message Analyzer (微软消息分析器,“网络抓包工具 - Network Monitor”的替代品)官方正式版现已发布

    Microsoft Message Analyzer (微软消息分析器,“网络抓包工具 - Network Monitor”的替代品)官方正式版现已发布 来自官方日志的喜悦 被誉为全新开始的消息分析器 ...

  3. GeoHash核心解析

    GeoHash核心解析 引子 机机是个好动又好学的孩子,平日里就喜欢拿着手机地图点点按按来查询一些好玩的东西.某一天机机到北海公园游玩,肚肚饿了,于是乎打开手机地图,搜索北海公园附近的餐馆,并选了其中 ...

  4. download youtube video

    using youtube-dl to download youtube video: (1) sudo apt-get install youtube-dl (2) run.sh #!/bin/ba ...

  5. .NET Mvc Razor

    .NET Mvc Razor也可以这样玩! 忙碌的工作总是占据了生活的大部分的时间!所以我的博客到现在还是寥寥的几篇文章,技术是用来分享和学习的,对技术有不同的见解,大家都可以分享下,如果如下文章有问 ...

  6. Http的四种post方式

    1.引言 HTTP/1.1 协议规定的 HTTP 请求方法有 OPTIONS.GET.HEAD.POST.PUT.DELETE.TRACE.CONNECT 这几种.其中 POST 一般用来向服务端提交 ...

  7. Android屏幕相关设置

    锁屏设置: 1. 初始值 : <integer name="def_screen_off_timeout">60000</integer> 2. 数据库/d ...

  8. linux主机load average的概念&&计算过程&&注意事项

    最近开发的一个模块需要根据机房各节点的负载情况(如网卡IO.load average等指标)做任务调度,刚开始对Linux机器load average这项指标不是很清楚,经过调研,终于搞清楚了其计算方 ...

  9. 应用Git Flow—Git团队协作最佳实践

    规范的Git使用 Git是一个很好的版本管理工具,不过相比于传统的版本管理工具,学习成本比较高. 实际开发中,如果团队成员比较多,开发迭代频繁,对Git的应用比较混乱,会产生很多不必要的冲突或者代码丢 ...

  10. Xamarin原生跨平台概述(精简概述,命中要害。PS:无图)

    Xamarin原生跨平台:原生界面.原生性能.原生API(与H5比较): 1.C#可以访问Andrid.IOS原生API,也可以调用C#系统类型,如Syetem,System.IO;2.原理:基于Mo ...