1.首先我们先了解Mybatis的一些jar包

---和项目框架

2.接下来就看看mybatis的配置文件(mybatis-config.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 >
<package name="cn.happy.entity"/>
</typeAliases> <environments default="development">
<environment id="development">
<!-- 使用jdbc的事务 -->
<transactionManager type="JDBC" />
<!-- 使用自带的连接池 -->
<dataSource type="POOLED">
<property name="driver" value="oracle.jdbc.OracleDriver" />
<property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl" />
<property name="username" value="happy" />
<property name="password" value="1" />
</dataSource>
</environment>
</environments>
<mappers>
<!-- 连接小配置 -->
<mapper resource="cn/happy/dao/StudentDAO.xml" />
</mappers>
</configuration>

3.在dao层的小配置(StudentDAO.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="cn.happy.dao"> <!-- 添加 -->
<insert id="insertStudent">
insert into student(stuno,stuname,stuage,studate)
values(ssm.nextval,#{stuname},#{stuage},#{studate}) <selectKey keyProperty="stuno" resultType="int">
select SSM.CURRVAL from dual
</selectKey>
</insert>
<!-- 查询所有 -->
<select id="findAll" resultType="Student">
select * from student
</select> <!-- 模糊查询 -->
<select id="findAllLike" resultType="Student">
<!-- 不管参数为什么都可以 -->
<!--select * from student where stuname like concat('%',#{stuname},'%')-->
<!-- 字符串 -->
<!-- select * from student where stuname like '%${value}%' -->
<!-- 对象 -->
select * from student where stuname like '%${stuname}%'
</select> <!--删除学生 --> <delete id="delStudent">
delete from student where stuno=#{id}<!-- #{id}随便写,起到一个占位的作用 -->
</delete> </mapper>

4.entity层实体类(Student)

package cn.happy.entity;

import java.util.Date;

public class Student {

    private int stuno;
private String stuname;
private int stuage;
private Date studate;
public String toString() {
return "Student [stuno=" + stuno + ", stuname=" + stuname + ", stuage="
+ stuage + ", studate=" + studate + "]";
}
public int getStuno() {
return stuno;
}
public void setStuno(int stuno) {
this.stuno = stuno;
}
public String getStuname() {
return stuname;
}
public void setStuname(String stuname) {
this.stuname = stuname;
}
public int getStuage() {
return stuage;
}
public void setStuage(int stuage) {
this.stuage = stuage;
}
public Date getStudate() {
return studate;
}
public void setStudate(Date studate) {
this.studate = studate;
} }

5.dao层(IStudentDAO)

package cn.happy.dao;

import java.io.IOException;
import java.util.List; import cn.happy.entity.Student; public interface IStudentDAO { /*
* 添加学生信息
*/
public int addStu(Student stu) throws IOException; /*
* 查询所有
*/
public List<Student> findAll() throws IOException; /*
* 模糊查询
*/
public List<Student> findAlllike(Student stu) throws IOException; /*
* 模糊查询字符串
*/
public List<Student> findAlllikebstuname(String stuname) throws IOException; /*
* 删除
*/
public int delStudent(int id) throws IOException;
}

6.dao层下的impl层(IStudentDAOImpl)

package cn.happy.dao.impl;

import java.io.IOException;
import java.util.List;
import org.apache.ibatis.session.SqlSession;
import cn.happy.dao.IStudentDAO;
import cn.happy.entity.Student;
import cn.happy.util.MybatisUtil; public class IStudentDAOImpl implements IStudentDAO{ /*
* session成员变量
*/
SqlSession session; /*
* 添加
* (non-Javadoc)
* @see cn.happy.dao.IStudentDAO#addStu(cn.happy.entity.Student)
*/
public int addStu(Student stu) throws IOException {
//获取session
session = MybatisUtil.getSession(); //添加insert
int result = session.insert("insertStudent", stu); //添加事物
session.commit(); //关闭session
session.close();
return result;
} /*
* 查询所有
* (non-Javadoc)
* @see cn.happy.dao.IStudentDAO#fandAll()
*/
public List<Student> findAll() throws IOException {
//获取session
session = MybatisUtil.getSession();
List<Student> list = session.selectList("findAll");
//关闭session
session.close();
return list;
} /*
* 模糊查询
* 1.参数为对象
* (non-Javadoc)
* @see cn.happy.dao.IStudentDAO#findAll(cn.happy.entity.Student)
*/
public List<Student> findAlllike(Student stu) throws IOException {
//获取session
session = MybatisUtil.getSession();
List<Student> list = session.selectList("findAllLike",stu);
//关闭session
session.close();
return list;
} /*
* 模糊查询
* 2.参数为字符串
* (non-Javadoc)
* @see cn.happy.dao.IStudentDAO#findAll(cn.happy.entity.Student)
*/
public List<Student> findAlllikebstuname(String stuname) throws IOException {
//获取session
session = MybatisUtil.getSession();
System.out.println("222");
List<Student> list = session.selectList("findAllLike",stuname);
System.out.println("333");
//关闭session
session.close();
return list;
} /*
* 删除
*/
public int delStudent(int id) throws IOException {
//获取session
session = MybatisUtil.getSession();
int result = session.delete("delStudent", id);
session.commit();
return result;
} }

7.util层的工具类(MybatisUtil )

package cn.happy.util;

import java.io.IOException;
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; /**
* 工具类
* @author Happy
*
*/
public class MybatisUtil {
private static String config="mybatis-config.xml";
static Reader reader;
static{
try {
reader= Resources.getResourceAsReader(config);
} catch (IOException e) {
e.printStackTrace();
}
}
private static SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader);
//提供一个可以获取到session的方法
public static SqlSession getSession() throws IOException{ // 1.1 openSession到底做了什么
SqlSession session = factory.openSession();
System.out.println("3333");
return session;
}
}

8. 日志信息配置文件(log4j.properties)

### direct log messages to stdout ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n ### direct messages to file mylog.log ###
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=c\:mylog.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n ### set log levels - for more verbose logging change 'info' to 'debug' ###

//记录cn.happy.dao包下的信息
log4j.logger.cn.happy.dao=trace, stdout

暂时就这么多了,如果想了解更多就记得多多关注吧!!!!

MyBatis的经典案例的更多相关文章

  1. javascript的理解及经典案例

    js的简介: JavaScript是一种能让你的网页更加生动活泼的程式语言,也是目前网页中设计中最容易学又最方便的语言. 你可以利用JavaScript轻易的做出亲切的欢迎讯息.漂亮的数字钟.有广告效 ...

  2. jQuery基础的工厂函数以及定时器的经典案例

    1. jQuery的基本信息:  1.1 定义: jQuery是JavaScript的程序库之一,它是JavaScript对象和实用函数的封装, 1.2 作用: 许多使用JavaScript能实现的交 ...

  3. Linux运维之道(大量经典案例、问题分析,运维案头书,红帽推荐)

    Linux运维之道(大量经典案例.问题分析,运维案头书,红帽推荐) 丁明一 编   ISBN 978-7-121-21877-4 2014年1月出版 定价:69.00元 448页 16开 编辑推荐 1 ...

  4. 经典案例:那些让人赞不绝口的创新 HTML5 网站

    在过去的10年里,网页设计师使用 Flash.JavaScript 或其他复杂的软件和技术来创建网站.但现在你可以前所未有的快速.轻松地设计或创造互动的.有趣好看的网站.如何创建?答案是 HTML5 ...

  5. Altera OpenCL用于计算机领域的13个经典案例(转)

    英文出自:Streamcomputing 转自:http://www.csdn.net/article/2013-10-29/2817319-the-application-areas-opencl- ...

  6. php中foreach()函数与Array数组经典案例讲解

    //php中foreach()函数与Array数组经典案例讲解 function getVal($v) { return $v; //可以加任意检查代码,列入要求$v必须是数字,或过滤非法字符串等.} ...

  7. 阿里云资深DBA专家罗龙九:云数据库十大经典案例分析【转载】

    阿里云资深DBA专家罗龙九:云数据库十大经典案例分析 2016-07-21 06:33 本文已获阿里云授权发布,转载具体要求见文末 摘要:本文根据阿里云资深DBA专家罗龙九在首届阿里巴巴在线峰会的&l ...

  8. 经典案例之MouseJack

    引言:在昨天的文章<无线键鼠监听与劫持>中,我们提到今天会向您介绍一个无线键鼠的监听与劫持的经典案例,<MouseJack>:MouseJack能利用无线鼠标和键盘存在的一些问 ...

  9. HTML5 CSS3 经典案例:无插件拖拽上传图片 (支持预览与批量) (二)

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/31513065 上一篇已经实现了这个项目的整体的HTML和CSS: HTML5 C ...

随机推荐

  1. ecshop 不同页面调用不同分类文章的解决办法

    调用文章列表,需要修改对应的程序,修改index.php或者arctical_cat.php文件在$smarty->assign('new_articles', index_get_new_ar ...

  2. SQL(横表和纵表)行列转换,PIVOT与UNPIVOT的区别和使用方法举例,合并列的例子

    使用过SQL Server 2000的人都知道,要想实现行列转换,必须综合利用聚合函数和动态SQL,具体实现起来需要一定的技巧,而在SQL Server 2005中,使用新引进的关键字PIVOT/UN ...

  3. RSA原理及生成步骤

    摘自:http://www.ruanyifeng.com/blog/2013/06/rsa_algorithm_part_one.html(可到原网址查看秘钥生成原理) RSA算法原理(一) 因为它是 ...

  4. nodeJS常用的定时执行任务的插件

    later:https://github.com/bunkat/later star:1765 fork:120 node-schedule  https://github.com/node-sche ...

  5. MFC 创建XML

    void CreateXml() { CoInitialize(NULL); // 创建文档 MSXML2::IXMLDOMDocument2Ptr pXMLDoc = NULL; //创建DOMDo ...

  6. php barcode 制作二条码,隐藏条码的内容,只保留条码

    <?php global $_W, $_GPC; $operation = !empty($_GPC['op']) ? $_GPC['op'] : 'display'; require_once ...

  7. Myeclipse导包总是报错,jar包路径都没问题

    是访问限制报错. 方法一: 全局属性Project>preferences>java>Compiler>Errors/Warnings>把右侧的[Deprecated a ...

  8. jstl自定义时间格式

    <fmt:formatDate value='${time}' pattern='yyyy-MM-dd HH:mm:ss'/> <s:iterator>下的<s:prop ...

  9. haproxy+keepalived

    global_defs { router_id LVS_DEVEL } vrrp_script chk_haproxy { script "killall -0 haproxy" ...

  10. 浅入tomcat

    前言:学习笔记,以供参考 1.什么是服务器 所谓的服务器其实就是一段别人写好的程序,服务器有两个能力. a.可以帮助我们来管理资源. b.可以将资源向外界发布以便于外界来访问这个资源. 2.资源有哪些 ...