2.MyBatis有代理增删改
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有代理增删改的更多相关文章
- MyBatis简单的增删改查以及简单的分页查询实现
MyBatis简单的增删改查以及简单的分页查询实现 <? xml version="1.0" encoding="UTF-8"? > <!DO ...
- Mybatis入门之增删改查
Mybatis入门之增删改查 Mybatis如果操作成功,但是数据库没有更新那就是得添加事务了.(增删改都要添加)----- 浪费了我40多分钟怀疑人生后来去百度... 导入包: 引入配置文件: sq ...
- MyBatis -- 对表进行增删改查(基于注解的实现)
1.MyBatis对数据库表进行增/删/改/查 前一篇使用基于XML的方式实现对数据库的增/删/改/查 以下我们来看怎么使用注解的方式实现对数据库表的增/删/改/查 1.1 首先须要定义映射sql的 ...
- Spring Boot 使用Mybatis注解开发增删改查
使用逆向工程是遇到的错误 错误描述 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): c ...
- Mybatis实现简单增删改查
Mybatis的简单应用 学习内容: 需求 环境准备 代码 总结: 学习内容: 需求 使用Mybatis实现简单增删改查(以下是在IDEA中实现的,其他开发工具中,代码一样) jar 包下载:http ...
- (一)Mybatis基本配置,Statement方式,动态代理增删改查
首先明白Mybatis是干什么的,之前使用jdbc操作数据库时候要写很多语句,获取光标,连接,获取具体对象进行相应操作,代码过于繁琐,所以现在有了Mybatis,它将这个操作整合在了一起,你不需要关心 ...
- 基于SSM之Mybatis接口实现增删改查(CRUD)功能
国庆已过,要安心的学习了. SSM框架以前做过基本的了解,相比于ssh它更为优秀. 现基于JAVA应用程序用Mybatis接口简单的实现CRUD功能: 基本结构: (PS:其实这个就是用的Mapper ...
- SpringMVC,MyBatis商品的增删改查
一.需求 商品的增删改查 二.工程结构 三.代码 1.Mapper层 (1) ItemsMapperCustom.java package com.tony.ssm.mapper; import ja ...
- mybatis中的增删改查操作
在这一个部分,主要进行增删改查的示例书写. 增删改查可以基于xml的,也可以基于注解的方式. 一:对单条数据的查询 1.目录结构 这个使得目录更加清晰 2.User.java 这个使用以前的user表 ...
随机推荐
- selenium webdriver (python)2
selenium webdriver (python) 第二版 前言 对于大多软件测试人员来讲缺乏编程经验(指项目开发经验,大学的C 语言算很基础的编程知识)一直是难以逾越的鸿沟,并不是说测试比开发 ...
- IOS学习之路十八(通过 NSURLConnection 发送 HTTP 各种请求)
你想通过 Http 协议向服务器发送一个 Get 的包装请求,并在这个请求中添加了一些请 求参数. 向远程服务器发送一个 GET 请求,然后解析返回的数据.通常一个 GET 请求是添加了 一些参数的, ...
- java的几种对象解释
一.PO:persistent object 持久对象,可以看成是与数据库中的表相映射的Java对象.最简单的PO就是对象数据库中某个表中的一条记录,多个记录可以用PO的集合.PO中应该不包含任何数据 ...
- [网络编程]VS2010+OpenSSL安装与初步了解
OpenSSL简介 功能作用:SSL(Secure Socket Layer)是netscape公司提出的主要用于web的安全通信标准,分为2.0版和3.0版.TLS(Transport Layer ...
- LINQ to XML LINQ学习第一篇
LINQ to XML LINQ学习第一篇 1.LINQ to XML类 以下的代码演示了如何使用LINQ to XML来快速创建一个xml: public static void CreateDoc ...
- 《.NET 编程结构》专题汇总
<.NET 编程结构>专题汇总 前言 掌握一门技术,首要的是掌握其基础. 笔者从事.NET相关开发多年,也非常喜欢.NET,多年来也积累了很多相关的资料,在此将一些基础性的 ...
- SQL 使用存储过程创建报表的一点体会
以前创建报表的时候都是采用视图的方式来实现的,通过把关联的表字段选取后形成需要的报表,用起来也比较方便. 最近也尝试用存储过程来做一些开发,确实也方便不少,因为很多逻辑关系都可以灵活的在SQL来实现, ...
- 绩效考核指标KPI 听课笔记
以前一直听人在说KPI,今天终于明白KPI是什么意思了!
- 解决gsoap中文乱码的问题
解决方法一: 在main函数里初始化soap结构体后加入 soap_set_mode(&soap,SOAP_C_UTFSTRING); 这样所有的C都是utf-8的格式,只要你的win ...
- JavaScript中的call 和apply的用途以及区别
apply 接受两个参数,第一个参数指定了函数体内this 对象的指向,第二个参数为一个带下标的集合,这个集合可以为数组,也可以为类数组,apply 方法把这个集合中的元素作为参数传递给被调用的函数: ...