一.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主配置文件

 <?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包下创建Dept.java文件

 package com.entity;

 public class Dept {
private int deptno;
private String dname;
private String loc; public Dept() {
} public Dept(int deptno, String dname, String loc) {
this.deptno = deptno;
this.dname = dname;
this.loc = loc;
} public int getDeptno() {
return deptno;
} public void setDeptno(int deptno) {
this.deptno = deptno;
} public String getDname() {
return dname;
} public void setDname(String dname) {
this.dname = dname;
} public String getLoc() {
return loc;
} public void setLoc(String loc) {
this.loc = loc;
} @Override
public String toString() {
return "Dept [deptno=" + deptno + ", dname=" + dname + ", loc=" + loc
+ "]";
} }

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

 package com.mapper;

 import java.util.List;

 import com.entity.Dept;

 /**
* 映射接口
* @author pc
*
*/
public interface DeptMapper {
/**
* 查询所有
* @return
*/
public List<Dept> getAll();
/**
* 根据id查询
* @param id
* @return
*/
Dept findId(int deptno);
/**
* 修改对象
* @param dept
* @return
*/
int updateDept(Dept dept);
/**
* 保存
* @param dept
* @return
*/
int saveDept(Dept dept);
/**
* 删除
* @param id
* @return
*/
int deleteById(int id); }

2.5 在src下的com.mapper包下创建DeptMapper.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="test">
<!-- id的值必须要和映射接口的方法名保持一致, -->
<!-- 查询所有 -->
<select id="getAll" resultType="Dept">
select * from dept
</select> <!--2. 根据id查询 -->
<!-- parameterType参数类型 -->
<select id="findId" resultType="Dept" parameterType="int">
select * from dept where deptno=#{deptno}
</select> <!-- 3.修改 -->
<update id="updateDept" parameterType="Dept">
update dept set dname=#{dname},loc=#{loc} where deptno=#{deptno}
</update> <!-- 4.保存 -->
<insert id="saveDept" parameterType="Dept">
insert into dept values(#{deptno},#{dname},#{loc})
</insert> <!-- 5.删除 -->
<delete id="deleteById" parameterType="int">
delete from dept where deptno=#{deptno}
</delete>
</mapper>

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

 package com.util;

 import java.io.InputStream;
import java.io.Reader; import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder; /**
* 获取sqlsession工具类
* @author pc
*
*/
public class MyBatisUtil {
//定义sqlsessionFactory对象
private static SqlSessionFactory sqlSessionFactory=null; static{
//读取xml文件
InputStream is=MyBatisUtil.class
.getClassLoader()
.getResourceAsStream("Configuration.xml");
//Reader rader=Resources.getResourceAsReader("Configuration.xml"); //创建sqlsessionFactory对象
sqlSessionFactory=new SqlSessionFactoryBuilder().build(is); }
/**
* 获取SqlSession对象的方法
* @param commit 如果为true表示执行完操作自动提交事务,false反之
* @return
*/
public static SqlSession getSqlSession(boolean iscommit){
return sqlSessionFactory.openSession(iscommit);
} }

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

 package com.mapper.impl;

 import java.util.List;

 import org.apache.ibatis.session.SqlSession;

 import com.entity.Dept;
import com.mapper.DeptMapper;
import com.util.MyBatisUtil; public class DeptMapperImpl implements DeptMapper {
/**
* 1.查询所有
*/
public List<Dept> getAll() {
//1.获取sqlsession,执行完操作不自动提交事务
SqlSession sqlSession=MyBatisUtil.getSqlSession(false); //2.调用方法执行操作,
//Stirng类型的参数=映射文件的namespace的值.映射文件的id
List<Dept> list=sqlSession.selectList("test.getAll");
//3.关闭sqlsession
sqlSession.close();
return list;
}
/**
* 2.查询单条
*/
public Dept findId(int deptno) {
//1.获取sqlsession,执行完操作不自动提交事务
SqlSession sqlSession=MyBatisUtil.getSqlSession(false); Dept dept=sqlSession.selectOne("test.findId", deptno); sqlSession.close();
return dept;
} /**
* 3.添加
*/
public int saveDept(Dept dept) {
//1.获取sqlsession,执行完操作不自动提交事务
SqlSession sqlSession=MyBatisUtil.getSqlSession(true); int num=sqlSession.insert("test.saveDept", dept); sqlSession.close();
return num;
}
/**
* 4.删除
*/
public int deleteById(int id) {
//1.获取sqlsession,执行完操作不自动提交事务
SqlSession sqlSession=MyBatisUtil.getSqlSession(true); int num=sqlSession.delete("test.deleteById", id);
sqlSession.close();
return num;
} /**
* 5.修改
*/
public int updateDept(Dept dept) {
//1.获取sqlsession,执行完操作不自动提交事务
SqlSession sqlSession=MyBatisUtil.getSqlSession(true); int num=sqlSession.update("test.updateDept", dept);
sqlSession.close();
return num;
} }

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

 package com.test;

 import java.util.List;

 import com.entity.Dept;
import com.mapper.DeptMapper;
import com.mapper.impl.DeptMapperImpl; public class Test { /**
* @param args
*/
public static void main(String[] args) {
DeptMapper mapper=new DeptMapperImpl(); System.out.println("-------------3.添加--------------");
/* Dept savedept=new Dept(60, "学术部", "8号楼");
int num= mapper.saveDept(savedept);
if(num>0){
System.out.println("insert success");
}else{ System.out.println("insert fail");
}
*/
System.out.println("----------1.查询所有--------------"); List<Dept> list=mapper.getAll();
for (Dept dept : list) {
System.out.println(dept);
}
System.out.println("----------2.查询单条--------------");
Dept dept= mapper.findId(10);
System.out.println(dept); System.out.println("-----------4.修改--------");
/* Dept updatedept=mapper.findId(60);
updatedept.setDname("huolly11");
updatedept.setLoc("222"); int upnum= mapper.updateDept(updatedept);
if(upnum>0){
System.out.println("update success");
}else{
System.out.println("update fail"); }*/
System.out.println("------------6.删除---------------");
/* Dept deldept=mapper.findId(50);
int delnum=mapper.deleteById(deldept.getDeptno());
if(delnum>0){
System.out.println("delete success");
}else{
System.out.println("delete fail"); }*/
} }

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. 启动web项目,报内存不足错误的解决方法

    Initialization of bean failed; nested exception is java.lang.OutOfMemoryError: Java heap space 原因: 在 ...

  2. python爆破zip脚本

    最近在提高自己编程能力,拿一些实用的小工具练下.该脚本为python语言,主要涉及模块zipfile,threadings模块. 功能:暴力猜解zip解压密码 #coding: utf-8 impor ...

  3. maven项目添加websocket

    最近由于项目业务需求,需要用到websocket来实现即时信息的推送,学习了一下websocket,网上搜了一下学习教程,很多版本看的我云里雾里,最后选择用tomcat提供的最新版本(tomcat 启 ...

  4. BIEE基本函数

    一,TRIM ,去除空字符 TRIM(EXPR) SUBSTRING("UT TIME"."月份" FROM 6 FOR 2) 1.AGGREGATE AT 此 ...

  5. 切换self.window.rootViewController根视图,导致上一视图控制器不能释放销毁的问题

    在我们APP开发中经常有首次进入应用先进入引导页或者登陆页的情况,类似下图所示      发现登陆以后更改window.rootViewController为应用首页时,登陆页没有销毁掉,通过图层工具 ...

  6. android 控件自定义样式

    一.按钮(Button) 方式1.存在.9图片或图片时   可在drawable文件夹下新建xml文件style_button_one.xml,代码如下 <?xml version=" ...

  7. ueditor的工具按钮配置

    定制工具栏图标 UEditor 工具栏上的按钮列表可以自定义配置,只需要通过修改配置项就可以实现需求 配置项修改说明 修改配置项的方法: 1. 方法一:修改 ueditor.config.js 里面的 ...

  8. 效果网址http://sc.chinaz.com/tag_jiaoben/tupianlunbo.html

    http://sc.chinaz.com/tag_jiaoben/tupianlunbo.html

  9. img 转化成iso镜像的办法

    最近在使用KVM启用虚拟机,然后将里面的环境和配置 配置成我们公司需要的环境,再打包成iso镜像,之后再次生成新的虚拟机. 但是KVM启动出的镜像生成的是img镜像 ,需要将img镜像转换成iso镜像 ...

  10. CodeForces 677D Vanya and Treasure

    $dp$,树状数组. 很明显这是一个$DAG$上的$dp$,由于边太多,暴力$dp$会超时,需要优化. 例如计算$dp[x][y]$,可以将区域分成四块,$dp[x][y]$取四块中的最小值,每一块用 ...