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 GMP
GMP是The GNU MP Bignum Library,是一个开源的数学运算库,它可以用于任意精度的数学运算,包括有符号整数.有理数和浮点数.它本身并没有精度限制,只取决于机器的硬件情况. 本函数 ...
- HDU 3721 Building Roads (2010 Asia Tianjin Regional Contest) - from lanshui_Yang
感慨一下,区域赛的题目果然很费脑啊!!不过确实是一道不可多得的好题目!! 题目大意:给你一棵有n个节点的树,让你移动树中一条边的位置,即将这条边连接到任意两个顶点(边的大小不变),要求使得到的新树的直 ...
- 1.3.1 switch 语句中的 String
switch语句是一种高效的多路语句,可以省掉很多繁杂的嵌套if判断: 在Java 6及之前,case语句中的常量只能是byte.char.short和int(也可以是对应的封装类)或枚举常量,在Ja ...
- HTML5学习参考资料整理
给大家推荐一下学习研究HTML5必备的一些个网站,更加有利于大家对HTML5的学些和研究.如果各位童鞋还有更多的,欢迎投递资源给我们,也可以支持 我们,让我们利用大家的力量收集更多的HTML5学习资料 ...
- with语句
<script type="text/javascript"> /* with语句:有了 With 语句,在存取对象属性和调用方法时就不用重复指定对象. 格式: wit ...
- UCOS 请求任务删除函数 及其应用
有时候,如果任务A拥有内存缓冲区或信号量之类的资源,而任务B想删除该任务,这些资源就可能由于没被释放而丢失.在这种情况下,用户可以想法子让拥有这些资源的任务在使用完资源后,先释放资源,再删除自己.用户 ...
- 08 - 删除vtkDataObject中的SetWholeExtent() 方法 VTK 6.0 迁移
VTK6 引入了许多不兼容的变.其中之一是删除vtkDataObject中所有有关管道的方法.其中之一就是SetWholeExtent().SetWholeExtent()方法先前被用来管理结构话数据 ...
- mobile优化
原文: http://queue.acm.org/detail.cfm?id=2510122 译文: http://www.w3cfuns.com/forum.php?mod=viewthread&a ...
- TimeZone 时区 (JS .NET JSON MYSQL)
来源参考 : http://www.cnblogs.com/qiuyi21/archive/2008/03/04/1089456.html 来源参考 : http://walkingice.blogs ...
- MFC界面更新实现方法
1.更新窗口 即采用UpdateWindow()函数立即发送WM_PAINT消息更新整个窗口. void CEditTestDlg::OnBnClickedBtnSysUpdate() { CStri ...