导入包

H:\jar\jdbc\mysql-connector-java-5.1.13-bin.jar
H:\jar\mybatis\mybatis-3.4.1\mybatis-3.4.1.jar
H:\jar\Junit\junit-4.7.jar

结构

package com.wym.model;

import java.util.Date;

public class Student {

     private String stuname;
private String stusex;
private Date birthday;
private String stuaddress;
private String stuid; public String getStuid() {
return stuid;
}
public void setStuid(String stuid) {
this.stuid = stuid;
}
public String getStuname() {
return stuname;
}
public void setStuname(String stuname) {
this.stuname = stuname;
}
public String getStusex() {
return stusex;
}
public void setStusex(String stusex) {
this.stusex = stusex;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
public String getStuaddress() {
return stuaddress;
}
public void setStuaddress(String stuaddress) {
this.stuaddress = stuaddress;
} @Override
public String toString() {
return "Student [stuid=" + stuid + ", stuname=" + stuname + ", stusex="
+ stusex + ", birthday=" + birthday + ", stuaddress="
+ stuaddress + "]";
} }

Student

package com.wym.test;

import java.io.InputStream;
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 org.junit.Before;
import org.junit.Test;
import com.wym.model.Student; public class Mybatisf { private SqlSessionFactory sqlSessionFactory; @Before
public void getsqlSessionFactory() throws Exception {
String resource = "SqlMapConfig.xml";
InputStream inputStream = null;
inputStream = Resources.getResourceAsStream(resource);
if (sqlSessionFactory == null)
sqlSessionFactory = new SqlSessionFactoryBuilder()
.build(inputStream); } @Test
public void insertstudent() {
SqlSession sqlSession; sqlSession = sqlSessionFactory.openSession();
Student student = new Student();
student.setStuid("wl4811");
student.setStuname("武2"); System.out.println(sqlSession.insert("test.insertstudent", student));
sqlSession.commit(); System.out.println(student.getStuid()); sqlSession.close(); } @Test
public void deletestudentbyid() {
SqlSession sqlSession; sqlSession = sqlSessionFactory.openSession(); System.out.println(sqlSession
.delete("test.deletestudentbyid", "wl1214")); sqlSession.commit(); sqlSession.close(); } @Test
public void updatestudent() {
SqlSession sqlSession; sqlSession = sqlSessionFactory.openSession(); Student student = new Student();
student.setStuid("wl2458");
student.setStuname("吴晏子");
student.setStuaddress("湖北"); System.out.println(sqlSession.update("test.updatestudent", student)); sqlSession.close(); } @Test
public void findstudentbystuid() {
SqlSession sqlSession; sqlSession = sqlSessionFactory.openSession();
Student student = sqlSession.selectOne("test.findstudentbystuid",
"wl1213");
System.out.println(student); sqlSession.close(); } @Test
public void findstudentbystusex() {
SqlSession sqlSession; sqlSession = sqlSessionFactory.openSession();
List<Student> ls = sqlSession.selectList("test.findstudentbystusex",
"M"); System.out.println(ls); sqlSession.close(); } }

Mybatisf

jdbc.properties

jdbc.classname =com.mysql.jdbc.Driver
jdbc.url =jdbc:mysql://localhost:3306/sudent
jdbc.username=root
jdbc.password=root
### 设置Logger输出级别和输出目的地 ###
log4j.rootLogger=debug,stdout,logfile ### 把日志信息输出到控制台 ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
#log4j.appender.stdout.Target=System.err
log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout ### 把日志信息输出到文件:jbit.log ###
log4j.appender.logfile=org.apache.log4j.FileAppender
log4j.appender.logfile.File=jbit.log
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %F %p %m%n ###显示SQL语句部分
log4j.logger.com.ibatis=DEBUG
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=DEBUG
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=DEBUG
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG

log4j.properties

<?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="test">
<select id="insertstudent">
insert into student(stuid,stuname,stusex,birthday,stuaddress ) VALUES(#{stuid},#{stuname},#{stusex},#{birthday},#{stuaddress})
</select> <select id="deletestudentbyid" parameterType="com.wym.model.Student" resultType="int" >
delete from student where stuid=#{stuid}
</select> <select id="updatestudent" >
update student set stuname=#{stuname},stusex=#{stusex},birthday=#{birthday},stuaddress=#{stuaddress} where stuid=#{stuid}
</select> <select id="findstudentbystuid" parameterType="String" resultType="com.wym.model.Student" >
select * from student where stuid=#{stuid}
</select> <select id="findstudentbystusex" parameterType="String" resultType="com.wym.model.Student" >
select * from student where stusex=#{stusex}
</select> </mapper>

student.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>
<properties resource="jdbc.properties"> </properties> <settings>
<setting name="logImpl" value="LOG4J"/>
</settings> <environments default="development">
<environment id="development"> <transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="${jdbc.classname}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments> <mappers> <mapper resource="sqlmap/Student.xml"/> </mappers> </configuration>

SqlMapConfig.xml

-- ----------------------------
-- Table structure for student
-- ----------------------------
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (
`stuid` varchar(10) NOT NULL COMMENT '学号',
`stuname` varchar(20) DEFAULT NULL COMMENT '姓名',
`stusex` char(1) DEFAULT NULL COMMENT '性别',
`birthday` date DEFAULT NULL COMMENT '生日',
`stuaddress` varchar(30) DEFAULT NULL COMMENT '住址',
PRIMARY KEY (`stuid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- ----------------------------
-- Records of student
-- ----------------------------
INSERT INTO `student` VALUES ('wl1213', '茂', 'M', '1991-10-05', '湖南');
INSERT INTO `student` VALUES ('wl1216', '元强', 'M', '1991-10-07', '湖南');
INSERT INTO `student` VALUES ('wl2458', '晏子', null, null, '湖北');
INSERT INTO `student` VALUES ('wl2811', '张山', null, null, null);
INSERT INTO `student` VALUES ('wl4811', '李武', null, null, null);
INSERT INTO `student` VALUES ('wl9811', '默默', null, null, null);

db.sql

mybatis3.4测试CRUD的更多相关文章

  1. ORM for Net主流框架汇总与效率测试

    框架已经被越来越多的人所关注与使用了,今天我们就来研究一下net方面的几个主流ORM框架,以及它们的效率测试(可能会有遗漏欢迎大家讨论). ORM框架:Object/Relation Mapping( ...

  2. 【MyBatis】MyBatis实现CRUD操作

    1.实现基本CRUD功能 使用MyBatis对数据完整的操作,也就是CRUD功能的实现.根据之前的内容,要想实现CRUD,只需要进行映射文件的配置. 范例:修改EmpMapper.xml文件,实现CR ...

  3. 1 JPA入门----项目搭建以及CRUD

    maven搭建JPA开发环境 1 依赖的maven pom文件     主要有hibernate-core.hibernate-entitymanager.javax-persistence.mysq ...

  4. 【经验分享】Mongodb操作类实现CRUD

    一.背景 公司项目中在做数据存储时使用到Mongodb,所以想着将Mongodb的操作封装后可供项目中其他成员方便使用. 附上Mongodb的下载地址: 下载 1.Mongodb类 此类主要是用来构造 ...

  5. MyBatis基础-CRUD

    一.mybatis  环境搭建步骤 第一步:创建 maven 工程第二步:导入坐标第三步:编写必要代码(实体类和持久层接口)第四步:编写 SqlMapConfig.xml第五步:编写映射配置文件第六步 ...

  6. mybatis 学习视频总结记录

    学习mybaits简单增删改查例子记录 此整理是学习视频后的视频内容整理,后半段还没有整理 网易云课堂 SSM高级整合视频 地址 : http://study.163.com/course/cours ...

  7. 13-MyBatis03(逆向工程)

    MyBatis逆向工程 1.导入jar包 <dependency> <groupId>org.mybatis</groupId> <artifactId> ...

  8. Net环境下比较流行的ORM框架对比

    个人感觉在Java领域大型开发都离不了ORM的身影,所谓的SSH就是Spring+Struts+Hibernate,除了在学习基础知识的时候被告知可以使用JDBC操作数据库之外,大量的书籍中都是讲述使 ...

  9. [译]Testing Node.js With Mocha and Chai

    原文: http://mherman.org/blog/2015/09/10/testing-node-js-with-mocha-and-chai/#.ViO8oBArIlJ 为什么要测试? 在此之 ...

随机推荐

  1. Socket 学习(三).4 UDP 穿透 客户端与客户端连接

    效果图: 使用方法:  先 修改WinClient\bin\Debug  下面的 ip.ini,写上 服务器 IP地址. 客户端 与 客户端 通讯 之前 ,点击发送打洞消息 按钮,然后过一会再发送消息 ...

  2. webBrowser.execWB的完整说明

    原文:webBrowser.execWB的完整说明 在不是js打开的页面上按window.close(), 会有提示框,很烦,现在可以不用了,没有提示框直接关闭窗口.试试下面代码: <objec ...

  3. Redhat Enterprise server 6.3 构造VPN

    一.软体 dkms.kernel_ppp_mppe.pptpd 二.下载软件 wget http://sourceforge.net/projects/poptop/files/mppe%20modu ...

  4. [C#]设置或取消开机启动(注册表形式)

    原文:[C#]设置或取消开机启动(注册表形式) 使用代码: 代码效果:

  5. Vim实用小技巧

    Vim实用小技巧 一些网络上质量较高的Vim资料 从我07年接触Vim以来,已经过去了8个年头,期间看过很多的Vim文章,我自己觉得非常不错,而且创作时间也比较近的文章有如下这些. Vim入门 目前为 ...

  6. itext之pdf导出添加水印Java工具类

    import java.io.IOException; import com.itextpdf.text.Document; import com.itextpdf.text.DocumentExce ...

  7. NM常用网络命令

    Ipconfig命令 Ipconfig命令可以被用来显示机器当前TCP/IP配置信息. 当使用Ipconfig时不带不论什么參数选项,那么它为每一个已经配置好的接口显示IP地址.子网掩码和默认网关值. ...

  8. 深入浅出SQL注入

    原文:深入浅出SQL注入 之前在做学生信息管理系统和机房收费系统的时候,对于SQL注入的问题已经是司空见惯,但是并没有真正的地形象生动的理解SQL注入到底是什么玩意儿.直到这次做牛腩才在牛老师的举例之 ...

  9. 【转】Android 系统菜单与自定义菜单

    Android 系统菜单与自定义菜单实现方法如下:系统菜单显示DefaultMenu.java package com.wxz.menu; import com.wxz.menu.R; import  ...

  10. C# 中参数验证方式

    C# 中参数验证方式 一般在写方法的时候,第一步就是进行参数验证,这也体现了编码者的细心和缜密,但是在很多时候这个过程很枯燥和乏味,比如在拿到一个API设计文档的时候,通常会规定类型参数是否允许为空, ...