1.MyBaits无代理全套增删改
一.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无代理全套增删改的更多相关文章
- 5、Spring+Struts2+MyBatis+分页(mybatis无代理)增删改查
1.创建如下项目结构 2.在src下的com.entity包下创建Dept.java package com.entity; /** * 部门表 * @author Holly老师 * */ publ ...
- 告别无止境的增删改查:Java代码生成器
对于一个比较大的业务系统,我们总是无止境的增加,删除,修改,粘贴,复制,想想总让人产生一种抗拒的心里.那有什么办法可以在正常的开发进度下自动生成一些类,配置文件,或者接口呢? 有感于马上要做个比较 ...
- 告别无止境的增删改查--Java代码生成器
转自:http://www.cnblogs.com/zhuYears/archive/2012/02/29/2373491.html 告别无止境的增删改查--Java代码生成器 有感于马上要做个比较大 ...
- 仿联想商城laravel实战---5、无刷新的增删改查(动态页面更新的三种方式(html))
仿联想商城laravel实战---5.无刷新的增删改查(动态页面更新的三种方式(html)) 一.总结 一句话总结: 直接js增加删除修改html 控制器直接返回处理好的页面 用双向绑定插件比如vue ...
- Hibernate全套增删改查+分页
1.创建一个web工程 2.导入jar包 3.创建Student表 4.创建实体类 package com.entity; public class Student { private Integer ...
- 3.struts2访问Servlet API,并和mybaits实现全套增删改查
1.创建数据库脚本userinfo.sql prompt PL/SQL Developer import file prompt Created on 2016年5月19日 by pc set fee ...
- 14.hibernate的反向生成实现全套增删改查
图片顺序就是步骤顺序 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
- 5.Hibernate实现全套增删改查和ajax异步分页
1.1 创建如下oracle数据库脚本 drop sequence seq_stu; create sequence SEQ_STU minvalue maxvalue start increment ...
- SSH 两个表全套增删改(运动员住宿管理)
0.创建如下oracle的命令 create table HOTALINFO ( HOTALID ) not null, HOTALNAME ) not null, HOTALADDRESS ) no ...
随机推荐
- gamma
图:显卡(驱动程序)上的Gamma设置 图:ACDSEE中的曝光调节 二. 什么是Gamma? 2.1. 显示器Gamma曲线 Gamma可能源于CRT(显示器/电视机)的响应曲线,即其亮度与输入电压 ...
- CODE[VS]-数的计算-递推-天梯白银
题目描述 Description 我们要求找出具有下列性质数的个数(包含输入的自然数n): 先输入一个自然数n(n<=1000),然后对此自然数按照如下方法进行处理: 1.不作任何处理; 2.在 ...
- unity3d和php后台简单交互--二
上次我们讨论了u3d和php的简单交互,现在我们接着讨论u3d和php交互,这里我们讨论的是php的后台大家可以延伸为其他语言.在实现的开发中我们很少通过发送字符或者字段到服务器上的,我们一般会请求包 ...
- Android Studio新手
目标:Android Studio新手–>下载安装配置–>零基础入门–>基本使用–>调试技能–>构建项目基础–>使用AS应对常规应用开发 AS简介 经过2年时间的研 ...
- 【NOIP2011提高组】选择客栈
题目不附了,是一个单纯的ST模型,但是考验各种常数优化. 最大的优化是对于同颜色的客栈来说,如果1号和2号成功配对了,那么1和3,1和4都可以成功配对,那么只要找到一对成功配对的,我们就直接加上剩下的 ...
- 仿qq的条目抽屉动画效果_ViewDragHelper
GitHub地址: https://github.com/OOOOOldZhu/DrawerItemView import android.content.Context; import androi ...
- html5的116个标签
基础 标签 描述 <!DOCTYPE> 定义文档类型. <html> 定义 HTML 文档. <title> 定义文档的标题. <body> 定义文 ...
- Conversion to Dalvik format failed with error 1(android)
1.如果不修改android sdk版本,则使用project clean 命令作用于某工程即可. (该处理方式只是在高版本中兼容了低版本工程,未真正意义上的升级) 2.如果修改android sdk ...
- springmvc配置aop
直接看代码 springmvc中的配置aop对 controller和它的子包进行拦截 springmvc中的配置 <!--xml头部配置需要有这几行代码--> xmlns:aop=&qu ...
- 学习Java第一篇——Java 安装及环境搭配
内容提要: 1.下载JDK: 2.安装JDK: 3.配置JDK; 第一,下载JDK: 1.登陆网址:www.oracle.com 2.点击 Downloads 3.选择 Java SE 4.选择 ...