mybatis的简单使用
使用mybatis数据库时,需要添加一下jar包:
asm-3.3.1.jar
cglib-2.2.2.jar
javassist-3.17.1-GA.jar
log4j-1.2.17.jar
mybatis-3.2.2.jar
slf4j-api-1.7.5.jar
slf4j-log4j12-1.7.5.jar
当然了,数据库驱动jar包不能忘记添加,mybatis jar包可以从官网上下载。
下面是mybatis的使用:
Dept.java
package com.entity;
public class Dept implements java.io.Serializable {
private Integer id;
private String name;
private String location;
public Dept() {
}
// Property accessors
public Integer getId() {
return this.id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
public String getLocation() {
return this.location;
}
public void setLocation(String location) {
this.location = location;
}
}
Dao包中的接口DeptDao.java
package com.dao; import java.util.List; import com.entity.Dept; /**
* 全新环境下的老代码
* @author
* @date 2015年12月3日 下午4:27:36
*/
public interface DeptDao { public void insertDept(Dept dept); public void updateDept(Dept dept); public void deleteDept(int id); public List<Dept> selAll(); }
DeptDaoMapper.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"> <mapper namespace="com.dao.DeptDao">
<resultMap id="deptResultMap" type="com.entity.Dept">
<id property="id" column="id" />
<result property="name" column="name" />
<result property="location" column="location" />
<result property="job" column="job" />
</resultMap>
<insert id="insertDept" parameterType="Dept">
insert into dept(id,name,location) values(seq_dept_id.nextval,#{name},#{location})
</insert>
<update id="updateDept" parameterType="Dept">
update dept set name=#{name},location=#{location} where id=#{id}
</update>
<delete id="deleteDept" parameterType="Dept">
delete dept where id=#{id}
</delete>
<select id="selectAll" resultType="Dept">
select * from dept
</select>
</mapper>
DeptDao接口的实现类DeptDaoImpl.java
package com.dao.impl; import java.io.IOException;
import java.io.Reader;
import java.util.ArrayList;
import java.util.List; import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder; import com.dao.DeptDao;
import com.entity.Dept; public class DeptDaoImpl implements DeptDao { @Override
//增加
public void insertDept(Dept dept) {
//1.指定数据源
String resource="mybatis-config.xml";
//构建sqlsf对象
SqlSessionFactory factory=null;
//sqlsession
SqlSession session=null;
//Reader对象
Reader reader=null;
try {
//获取reader对象
reader=Resources.getResourceAsReader(resource);
//工厂生成器
SqlSessionFactoryBuilder builder=new SqlSessionFactoryBuilder();
//得到工厂
factory=builder.build(reader);
//得到session
session=factory.openSession();
session.insert("insertDept", dept);
//增删改需提交事务
session.commit();
System.out.println("添加成功了");
} catch (Exception e) {
e.printStackTrace();
}finally{
try {
reader.close();
session.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} } @Override
//修改
public void updateDept(Dept dept) {
//1.指定数据源
String resource="mybatis-config.xml";
//构建sqlsf对象
SqlSessionFactory factory=null;
//sqlsession
SqlSession session=null;
//Reader对象
Reader reader=null;
try {
//获取reader对象
reader=Resources.getResourceAsReader(resource);
//工厂生成器
SqlSessionFactoryBuilder builder=new SqlSessionFactoryBuilder();
//得到工厂
factory=builder.build(reader);
//得到session
session=factory.openSession();
session.update("updateDept", dept);
//增删改需提交事务
session.commit();
System.out.println("修改成功了");
} catch (Exception e) {
e.printStackTrace();
}finally{
try {
reader.close();
session.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} } @Override
//删除
public void deleteDept(int id) {
//1.指定数据源
String resource="mybatis-config.xml";
//构建sqlsf对象
SqlSessionFactory factory=null;
//sqlsession
SqlSession session=null;
//Reader对象
Reader reader=null;
try {
//获取reader对象
reader=Resources.getResourceAsReader(resource);
//工厂生成器
SqlSessionFactoryBuilder builder=new SqlSessionFactoryBuilder();
//得到工厂
factory=builder.build(reader);
//得到session
session=factory.openSession();
session.delete("deleteDept", id);
//增删改需提交事务
session.commit();
System.out.println("删除成功了");
} catch (Exception e) {
e.printStackTrace();
}finally{
try {
reader.close();
session.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} } @Override
//查询所有
public List<Dept> selAll() {
List<Dept> list=new ArrayList<Dept>();
//1.指定数据源
String resource="mybatis-config.xml";
//构建sqlsf对象
SqlSessionFactory factory=null;
//sqlsession
SqlSession session=null;
//Reader对象
Reader reader=null;
try {
//获取reader对象
reader=Resources.getResourceAsReader(resource);
//工厂生成器
SqlSessionFactoryBuilder builder=new SqlSessionFactoryBuilder();
//得到工厂
factory=builder.build(reader);
//得到session
session=factory.openSession();
list=session.selectList("selectAll");
} catch (Exception e) {
e.printStackTrace();
}finally{
try {
reader.close();
session.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return list;
} }
mybatis-config.xml,配置文件,放在src根目录下
<?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 alias="Dept" type="com.entity.Dept"/>
</typeAliases>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="UNPOOLED">
<property name="driver" value="oracle.jdbc.driver.OracleDriver"/>
<property name="url" value="jdbc:oracle:thin:@192.168.40.128:1521:orcl"/>
<property name="username" value="thunder"/>
<property name="password" value="admin"/>
</dataSource>
</environment>
</environments> <mappers>
<mapper resource="com/dao/DeptDaoMapper.xml"/>
</mappers>
</configuration>
测试方法:
public static void main(String[] args) {
DeptDao dd=new DeptDaoImpl();
Dept dept=new Dept();
//添加
// dept.setName("就业部");
// dept.setLocation("柒角旮旯");
// dd.insertDept(dept);
//修改
// dept.setId(20);
// dept.setName("城管部");
// dept.setLocation("你猜,你猜,猜对了我就告诉你");
// dd.updateDept(dept);
//删除
// dd.deleteDept(20);
//查询所有
List<Dept> list=dd.selAll();
for (Dept d : list) {
System.out.println(d.getName()+"---------"+d.getLocation());
}
}
以上就是简单的mybatis使用小例子,当然,项目中的使用会复杂很多,重点是DeptDaoMapper.xml文件中sql语句的设计,以及实现类中传值,其他的应该不是很难。
mybatis的简单使用的更多相关文章
- Mybatis框架简单使用
Mybatis框架简单使用 环境搭建 新建一个JavaWeb项目,在web\WEB-INF\创建lib文件,并且在其下添加Mybatis的核心包以及依赖包,以及Mysql驱动包,junit4测试包等. ...
- MyBatis(1)-简单入门
简介 什么是 MyBatis ? MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.My ...
- MyBatis 使用简单的 XML或注解用于配置和原始映射
MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis .My ...
- 单独使用MyBatis的简单示例
单独使用MyBatis的简单示例:mybaties-config.xml:MyBatis配置文件 <?xml version="1.0" encoding="UTF ...
- Mybatis的简单增删改查
刚开始学习Mybatis可以先看下官方文档,MyBatis是支持定制化SQL.存储过程以及高级映射的优秀的持久层框架.MyBatis避免了几乎所有的JDBC代码和手工设置参数以及抽取结果集.MyBat ...
- Mybatis实现简单的CRUD(增删改查)原理及实例分析
Mybatis实现简单的CRUD(增删改查) 用到的数据库: CREATE DATABASE `mybatis`; USE `mybatis`; DROP TABLE IF EXISTS `user` ...
- Mybatis实现简单增删改查
Mybatis的简单应用 学习内容: 需求 环境准备 代码 总结: 学习内容: 需求 使用Mybatis实现简单增删改查(以下是在IDEA中实现的,其他开发工具中,代码一样) jar 包下载:http ...
- MyBatis学习--简单的增删改查
jdbc程序 在学习MyBatis的时候先简单了解下JDBC编程的方式,我们以一个简单的查询为例,使用JDBC编程,如下: Public static void main(String[] args) ...
- Mybatis的简单示例
首先新建一个JavaWeb项目并导入mybatis依赖的jar包,同时Mybatis是对数据库的操作所以我们需要在数据库中新建一个表user用来演示. 新建完表之后我们还需要建立相对应的实体类User ...
- MyBatis的简单操作
这里将的是简单的增.删.改.查等基本操作 首先创建java项目,导入相应的依赖包,这里可以参考上一篇博客 1.添加数据 在jike.book.pojo包中,新建java类 JiKeUser.java: ...
随机推荐
- php生成短网址的思路与方法
生成短网址的思路以及使用php生成短网址的实现方法. 生成短网址的思路:如果把短网址还原了,你知道是个什么样子的吗?比如:http://www.jbxue.com/sitejs-17300-1.htm ...
- 准备开发一个基于canvas的图表库,记录一些东西(一)
开源的图表库已经有很多了,这里从头写个自己的,主要还是 提高自己js的水平,增加复杂代码组织的经验 首先写一个画图的库,供以后画图表使用.经过2天的开发,算是能拿出点东西了,虽然功能还很弱,但是有了一 ...
- 【创建型】Abstract Factory模式 & Factory Method模式
本文主要介绍简单工厂模式与抽象工厂模式.以下如有叙述不当之处,欢迎批评指正,欢迎交流探讨. 一:简单工厂模式 在23种设计模式中,简单工厂模式其实是不在列的,但理解该模式对于抽象工厂模式的思想理解是有 ...
- 统计建模与R软件习题二答案
# 习题2 # 2.1 x=c(1,2,3) y=c(4,5,6) e=c(rep(1,3)) z=2*x+y+e;z x%*%y # 若x,y如答案那样定义为矩阵,则不能用%*%,因为,维数不对应, ...
- 怎么看时序图--nand flash的读操作详解(转载)
出处:http://blog.chinaunix.net/uid-28852942-id-3992727.html这篇文章不是介绍 nand flash的物理结构和关于nand flash的一些基本知 ...
- jQuery CSS3 照片墙
<html> <head> <style type="text/css"> .picture-wall-container{ position: ...
- POSTGRESQL小玩
因为CDH上需要用它来建HIVE的元库... 参考: http://www.cnblogs.com/mchina/archive/2012/06/06/2539003.html 一.简介 Postgr ...
- Special Pythagorean triplet
这个比较简单,慢慢进入状态. A Pythagorean triplet is a set of three natural numbers, a b c, for which, a2 + b2 = ...
- Gridview中奇偶数行颜色设置
在gridview中的RowDataBound事件里面写 switch (e.Row.RowType) {case DataControlRowType.Header: e.Row.BackColor ...
- Bundle类
1.新建一个Bundle类 Bundle bundle=new Bundle();2.Bundle类中放入数据(key-value的形式,另一个Activity里面取数据的时候,通过key值找出对应的 ...