(正在补充)

1.从第一个程序开始,通过mybatis实现数据库表内容的增删改查

  源码zip包)

  1.0准备工作

    建数据库mybatis,在其中创建表sql语句如下:

  

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------
-- Table structure for `orders`
-- ----------------------------
DROP TABLE IF EXISTS `orders`;
CREATE TABLE `orders` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`user_id` INT(11) NOT NULL COMMENT '下单用户id',
`number` VARCHAR(32) NOT NULL COMMENT '订单号',
`createtime` DATETIME NOT NULL COMMENT '创建订单时间',
`note` VARCHAR(100) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`id`),
KEY `FK_orders_1` (`user_id`),
CONSTRAINT `FK_orders_id` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=INNODB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8; -- ----------------------------
-- Records of orders
-- ----------------------------
INSERT INTO `orders` VALUES ('', '', '', '2015-02-04 13:22:35', NULL);
INSERT INTO `orders` VALUES ('', '', '', '2015-02-03 13:22:41', NULL);
INSERT INTO `orders` VALUES ('', '', '', '2015-02-12 16:13:23', NULL); -- ----------------------------
-- Table structure for `user`
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`username` VARCHAR(32) NOT NULL COMMENT '用户名称',
`birthday` DATE DEFAULT NULL COMMENT '生日',
`sex` CHAR(1) DEFAULT NULL COMMENT '性别',
`address` VARCHAR(256) DEFAULT NULL COMMENT '地址',
PRIMARY KEY (`id`)
) ENGINE=INNODB AUTO_INCREMENT=27 DEFAULT CHARSET=utf8; -- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES ('', '王五', NULL, '', NULL);
INSERT INTO `user` VALUES ('', '张三', '2014-07-10', '', '北京市');
INSERT INTO `user` VALUES ('', '张小明', NULL, '', '河南郑州');
INSERT INTO `user` VALUES ('', '陈小明', NULL, '', '河南郑州');
INSERT INTO `user` VALUES ('', '张三丰', NULL, '', '河南郑州');
INSERT INTO `user` VALUES ('', '陈小明', NULL, '', '河南郑州');
INSERT INTO `user` VALUES ('', '王五', NULL, NULL, NULL);

  1.1新建java项目(mytatis-a1)

    创建lib文件夹,加入mybaties核心包、依赖包、数据库包(整合包点我下载),build to path

    创建config资源文件,放置配置文件

      config/创建sqlMapConfig.xml(核心配置文件)

      config/创建log4j.properties(日志)

      config/创建sqlmap/user.xml(写sql语句)

    创建包com.mybatis.pojo/下根据数据库表创建User.java

       com.mybatis.test/MybatiesTest.java

    结构图如下:

    

    填写代码:

    sqlMapConfig.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>
<!-- 和spring整合后 environments配置将废除 -->
<environments default="development">
<environment id="development">
<!-- 使用jdbc事务管理 -->
<transactionManager type="JDBC" />
<!-- 数据库连接池 -->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url"
value="jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8" />
<property name="username" value="root" />
<property name="password" value="root" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="sqlmap/user.xml"/>
</mappers> </configuration>

    log4j.properites

    

# Global logging configuration
log4j.rootLogger=DEBUG, stdout
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

    user.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:命名空间,用于隔离sql,还有一个很重要的作用,后面会讲 -->
<mapper namespace="test">
<select id="queryUserById" parameterType="Integer" resultType="com.mybaties.pojo.User">
select * from user where id = #{v}
</select>
</mapper>

    User.java 

    

package com.mybaties.pojo;

import java.io.Serializable;
import java.util.Date; public class User implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
private Integer id;
private String username;// 用户姓名
private String sex;// 性别
private Date birthday;// 生日
private String address;// 地址 public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
} public String toString() {
return "User [id=" + id + ", username=" + username + ", sex=" + sex
+ ", birthday=" + birthday + ", address=" + address + "]";
} }

    MybatisTest.java 

    

package com.mybaties.test;

import java.io.InputStream;

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; public class MybatiesTest {
private SqlSessionFactory factory; @Before
public void init() throws Exception{
InputStream in =
Resources.getResourceAsStream("sqlMapConfig.xml");
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
this.factory = builder.build(in);
} @Test
public void testQueryUserById(){
SqlSession session = factory.openSession();
Object user = session.selectOne("test.queryUserById", 37);
System.out.println(user); }
}

    MybatiesTest.java

    

package com.mybaties.test;

import java.io.IOException;
import java.io.InputStream; 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.Test; public class MybatiesTest1 { @Test
public void testQueryUserById() throws IOException{
InputStream in =
Resources.getResourceAsStream("sqlMapConfig.xml");
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
SqlSession session = factory.openSession();
Object user = session.selectOne("test.queryUserById", 37);
System.out.println(user); }
}

    junit:MybatiesTest中testQueryUserById结果如图:

    

      

    

MyBatisPartA的更多相关文章

随机推荐

  1. 转载 HTTPS 之fiddler抓包、jmeter请求

    转载自 http://suixiang0923.github.io/2016/01/12/%E6%B5%85%E8%B0%88HTTPS%E4%BB%A5%E5%8F%8AFiddler%E6%8A% ...

  2. maven环境的配置

    http://maven.oschina.net/help.html     --配置说明 http://maven.oschina.net/index.html#nexus-search;quick ...

  3. 一次清除SQL SERVER错误日志的体会!

    之前在UAT环境搭建的SQL SERVER 2008 R2数据库一直用得比较正常,但最近发现在Sharepoint中不能进行任何操作了,开始以为是什么配置出了问题(因为一直在研究一些新的应用和集成,需 ...

  4. Python 正则表达式规则

    正则表达式的一些匹配规则: . :用于匹配任意一个字符,如 a.c 可以匹配 abc .aac .akc 等^ :用于匹配以...开头的字符,如 ^abc 可以匹配 abcde .abcc .abca ...

  5. IOS7 新特性(针对同样讨厌更新后IOS7的开发者)

    本文转载至 http://blog.csdn.net/hanbing861210/article/details/13614211 您还未登录!|登录|注册|帮助 首页 业界 移动 云计算 研发 论坛 ...

  6. js解析json字符

    这是真真遇到的问题,后台给我返回的是json的字符串: {"status":410,"data":"","message" ...

  7. 《从零开始学Swift》学习笔记(Day 68)——Cocoa Touch设计模式及应用之响应者链与触摸事件

    原创文章,欢迎转载.转载请注明:关东升的博客 应用与用户进行交互,依赖于各种各样的事件.事件响应者对象是可以响应事件并对其进行处理的对象,响应者链是由一系列链接在一起的响应者组成的.响应者链在事件处理 ...

  8. CodeForces 651 A Joysticks

    A. Joysticks time limit per test 1 second memory limit per test 256 megabytes input standard input o ...

  9. C#批量入库

    public static void BulkCopyToDB(DataTable dt, string conn, string tableName, out string msg) { msg = ...

  10. 第九课——MySQL优化之索引和执行计划

    一.创建索引需要关注什么? 1.关注基数列唯一键的数量: 比如性别,该列只有男女之分,所以性别列基数是2: 2.关注选择性列唯一键与行数的比值,这个比值范围在0~1之前,值越小越好: 其实,选择性列唯 ...