MyBatis学习(一)一个简单的例子
mybatis入门例子
开发步骤:
占位符:
iBatis #id#
myBatis #{id}
1、创建web工程
2、导入jar包:
3、配置文件 sqlMapConfig.xml :
事务:JDBC/MANAGED
数据源:UNPOOLED/POOLED/JNDI

1 <?xml version="1.0" encoding="UTF-8" ?>
2 <!DOCTYPE configuration
3 PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
4 "http://mybatis.org/dtd/mybatis-3-config.dtd">
5 <configuration>
6 <environments default="development">
7 <environment id="development">
8 <transactionManager type="JDBC"/>
9 <dataSource type="POOLED">
10 <property name="driver" value="com.mysql.jdbc.Driver"/>
11 <property name="url" value="jdbc:mysql://localhost:3306/mybatisdb?characterEncoding=UTF-8"/>
12 <property name="username" value="root"/>
13 <property name="password" value="root"/>
14 </dataSource>
15 </environment>
16 </environments>
17
18 <mappers>
19 <mapper resource="cn/itcast/mybatis/domain/User.xml"/>
20 </mappers>
21 </configuration>

4.创建数据库
create table USER_C
(
ID varchar(40) not null,
NAME varchar(30),
AGE int,
ADDRESS varchar(200),
primary key (ID)
);
insert into `user_c`(`id`,`name`,`age`,`address`)
values ('1','夏言',73,'桂州村'),
('2','严嵩',87,'分宜县城介桥村'),
('3','徐阶',80,'明松江府华亭县'),
('4','高拱',66,'河南省新郑市高老庄村'),
('5','张居正',58,'江陵');
5、映射文件 cn.itcast.mybatis.domain.User.xml :
6、PO对象 User.java :

1 package cn.itcast.domain;
2
3 public class User {
4 private String id;
5 private String name;
6 private Integer age;
7 private String address;
8 public String getAddress() {
9 return address;
10 }
11 public void setAddress(String address) {
12 this.address = address;
13 }
14 public String getId() {
15 return id;
16 }
17 public void setId(String id) {
18 this.id = id;
19 }
20 public String getName() {
21 return name;
22 }
23 public void setName(String name) {
24 this.name = name;
25 }
26 public Integer getAge() {
27 return age;
28 }
29 public void setAge(Integer age) {
30 this.age = age;
31 }
32 @Override
33 public String toString() {
34 return "User [id=" + id + ", name=" + name + ", age=" + age + "]";
35 }
36
37 }

7、测试类:

1 package cn.itcast.test;
2
3 import java.io.IOException;
4 import java.io.InputStream;
5 import java.util.List;
6 import java.util.UUID;
7
8 import org.apache.ibatis.io.Resources;
9 import org.apache.ibatis.session.SqlSession;
10 import org.apache.ibatis.session.SqlSessionFactory;
11 import org.apache.ibatis.session.SqlSessionFactoryBuilder;
12 import org.junit.Before;
13 import org.junit.Test;
14
15 import cn.itcast.domain.User;
16
17 public class TestMybatis {
18
19 SqlSessionFactory sqlSessionFactory;
20
21 @Before
22 public void initFactory() throws IOException
23 {
24 String resource = "sqlMapConfig.xml";
25
26 InputStream inputStream = Resources.getResourceAsStream(resource);
27
28 sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
29 }
30
31 @Test
32 public void testListAll()
33 {
34 SqlSession session=sqlSessionFactory.openSession();
35 List<User> users=session.selectList("cn.itcast.mybatis.listAll");
36 System.out.println(users.size());
37 }
38 @Test
39 public void testQueryOne()
40 {
41 SqlSession session=sqlSessionFactory.openSession();
42 User user=session.selectOne("cn.itcast.mybatis.getOne", 1);
43 System.out.println(user);
44 }
45 //事务需要程序员处理
46 @Test
47 public void testInsertOne()
48 {
49 User u=new User();
50 u.setId(UUID.randomUUID().toString());
51 u.setName("sbsbb");
52 u.setAge(18);
53 u.setAddress("china");
54 SqlSession session=sqlSessionFactory.openSession();
55 int count=session.insert("cn.itcast.mybatis.insertOne", u);
56 session.commit();
57 System.out.println(count);
58 }
59
60 @Test
61 public void testUpdateOne()
62 {
63 SqlSession session=sqlSessionFactory.openSession();
64 User u=new User();
65 //u=session.selectOne("cn.itcast.mybatis.getOne", "2");
66 u.setId("2");
67 u.setName("clclclclclcfei");
68 u.setAge(100);
69 u.setAddress("USA");
70 int count=session.update("cn.itcast.mybatis.updateOne", u);
71 session.commit();
72 System.out.println(count);
73 }
74 @Test
75 public void testDeleteOne()
76 {
77 SqlSession session=sqlSessionFactory.openSession();
78 User u=new User();
79 u.setId("2");
80 int count=session.delete("cn.itcast.mybatis.deleteOne", u);
81 session.commit();
82 System.out.println(count);
83 }
84
85
86
87 }

MyBatis学习(一)一个简单的例子的更多相关文章
- OpenCV学习(2)——一个简单的例子
光说不练假把式,来看一个简单的例子,了解了解OpenCV.这个小demo没有几行代码,作用是显示项目目录下面的一张图片. #include <opencv2\opencv.hpp> #in ...
- 新秀学习Hibernate——一个简单的例子
一个.Hibernate开发. 上篇博客已经为大家介绍了持久层框架的发展流程,持久层框架的种类. 为了可以使用Hibernate高速上手,我们先解说一个简单的Hibernate应用实例hibernat ...
- 使用ssm(spring+springMVC+mybatis)创建一个简单的查询实例(一)
梳理下使用spring+springMVC+mybatis 整合后的一个简单实例:输入用户的 ID,之后显示用户的信息(此次由于篇幅问题,会分几次进行说明,此次是工程的创建,逆向生成文件以及这个简单查 ...
- Spring-Context之一:一个简单的例子
很久之前就想系统的学习和掌握Spring框架,但是拖了很久都没有行动.现在趁着在外出差杂事不多,就花时间来由浅入深的研究下Spring框架.Spring框架这几年来已经发展成为一个巨无霸产品.从最初的 ...
- 使用ssm(spring+springMVC+mybatis)创建一个简单的查询实例(三)(错误整理篇)
使用ssm(spring+springMVC+mybatis)创建一个简单的查询实例(一) 使用ssm(spring+springMVC+mybatis)创建一个简单的查询实例(二) 以上两篇已经把流 ...
- 用一个简单的例子来理解python高阶函数
============================ 用一个简单的例子来理解python高阶函数 ============================ 最近在用mailx发送邮件, 写法大致如 ...
- 关于apriori算法的一个简单的例子
apriori算法是关联规则挖掘中很基础也很经典的一个算法,我认为很多教程出现大堆的公式不是很适合一个初学者理解.因此,本文列举一个简单的例子来演示下apriori算法的整个步骤. 下面这个表格是代表 ...
- 扩展Python模块系列(二)----一个简单的例子
本节使用一个简单的例子引出Python C/C++ API的详细使用方法.针对的是CPython的解释器. 目标:创建一个Python内建模块test,提供一个功能函数distance, 计算空间中两 ...
- fitnesse - 一个简单的例子(slim)
fitnesse - 一个简单的例子(slim) 2017-09-30 目录1 编写测试代码(Fixture code)2 编写wiki page并运行 2.1 新建wikiPage 2.2 运行 ...
- Struts2的配置和一个简单的例子
Struts2的配置和一个简单的例子 笔记仓库:https://github.com/nnngu/LearningNotes 简介 这篇文章主要讲如何在 IntelliJ IDEA 中使用 Strut ...
随机推荐
- Windows程序执行过程
Windows应用程序: WinMain函数(入口函数): 1. 设计窗体类,注冊窗体类.WNDCLASS 2. 创建窗体,显示及更新窗体. 3. 消息循环. 窗体过程函数(回调函数):WindowP ...
- 8 -- 深入使用Spring -- 3...1 Resource实现类ClassPathResource
8.3.1 Resource实现类------ClassPathResource : 访问类加载路径下的资源的实现类 2.访问类加载路径下的资源 ClassPathResource 用来访问类加载路径 ...
- Nginx 72万连接性能测试(一)
转自:http://my.oschina.net/chenzhuo/blog/150200?p=2#comments 根据系统内存64G估算单台tengine做反向代理最高支持72万连接.为了验证达到 ...
- linux系统开机自启程序-需要-root用户 -启动 -
#!/bin/bashsh /home/hwjc/RSA/release2017-02-23/release2017-02-23/install.shsh /etc/init.d/mqtt.shifc ...
- 教你在windows下安装使用配置vim+gcc[转]
转自http://blog.163.com/lixiangqiu_9202/blog/static/535750372012461190722/ 一直在使用linux,但有时也会去虚拟机里的winxp ...
- CSS-禁用a标签
<style> a.disabled { pointer-events: none; filter: alpha(opacity=50); /*IE滤镜,透明度50%*/ -moz-opa ...
- PrintWriter 和 Scanner 类的组合使用
// 示例程序:将一个Employee记录数组存储成一个文本文件,其中每个记录都保存在单独的一行中, // 而实例的域彼此之间使用分隔符分离开. // 众所周知: // 以二进制格式写出数据,需要使用 ...
- linux Tar 命令参数详解
tar命令 . 作用 tar命令是Unix/Linux系统中备份文件的可靠方法,几乎可以工作于任何环境中,它的使用权限是所有用户. . 格式 tar [主选项+辅选项] 文件或目录 eg: tar z ...
- 一些有用的java 框架
jwt 用于生成web toke的类库 http://jwt.io/ jasypt java加密类库 http://www.jasypt.org/
- css3整理--border-radius
1.border-radius 标准: border-top-left-radius: x y // 左上角,x 圆角水平半径, y 圆角垂直半径 border-top-right-radius:x ...