MyBatis初接触

参考MyBatis官方文档

基本开发步骤:

一、导包,mybatis-3.2.7.jar;

二、编写实体类Customer.java(与数据库表对应);

三、编写实体类对应的mapper接口CustomerMapper.java(定义实体类的操作);

四、编写实体类对应的mapper,Customer.xml(接口中的方法名与mapper中的操作的id名要一致);

五、编写mybatis-config.xml;

六、在mybatis-config.xml中注册mapper;

七、从xml获取SqlSessionFactory(或从mybatis提供的configuration class获取,具体参考mybatis-3.2.7手册,此手册位于mybatis的下载包中);

八、获取SqlSession;

九、通过SqlSession获取mapper,执行其中的操作。

以下是一个Demo:

1、Customer.java


 1 package com.mybatis.po;
2
3 public class Customer {
4 private int id;
5 private String name;
6 private String gender;
7 private int age;
8 private String address;
9
10 public int getId() {
11 return id;
12 }
13
14 public void setId(int id) {
15 this.id = id;
16 }
17
18 public String getName() {
19 return name;
20 }
21
22 public void setName(String name) {
23 this.name = name;
24 }
25
26 public String getGender() {
27 return gender;
28 }
29
30 public void setGender(String gender) {
31 this.gender = gender;
32 }
33
34 public int getAge() {
35 return age;
36 }
37
38 public void setAge(int age) {
39 this.age = age;
40 }
41
42 public String getAddress() {
43 return address;
44 }
45
46 public void setAddress(String address) {
47 this.address = address;
48 }
49
50 }

2、CustomerMapper.java


1 package com.mybatis.mapper;
2
3 import com.mybatis.po.Customer;
4
5 public interface CustomerMapper {
6 public int insert(Customer cus);
7 public int update(Customer cus);
8 }

3、Customer.xml


 1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE mapper
3 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
4 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
5
6 <mapper namespace="com.mybatis.mapper.CustomerMapper">
7 <insert id="insert" parameterType="Customer">
8 insert into customer(name, gender, age, address)
9 values(#{name}, #{gender}, #{age}, #{address})
10 </insert>
11
12 <update id="update" parameterType="Customer">
13 update customer
14 set name = #{name}, gender = #{gender}, age = #{age}, address = #{address}
15 </update>
16 </mapper>

4、mybatis-config.xml


 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
6 <configuration>
7 <properties resource="db-config.properties" />
8
9 <typeAliases>
10 <!-- <typeAlias type="com.mybatis.po.Customer" alias="Customer" /> -->
11 <package name="com.mybatis.po" />
12 </typeAliases>
13
14 <environments default="development">
15 <environment id="development">
16 <transactionManager type="JDBC" />
17 <dataSource type="POOLED">
18 <property name="driver" value="${driver}" />
19 <property name="url" value="${url}" />
20 <property name="username" value="${username}" />
21 <property name="password" value="${password}" />
22 </dataSource>
23 </environment>
24 </environments>
25
26 <mappers>
27 <mapper resource="com/mybatis/po/Customer.xml" />
28 </mappers>
29 </configuration>

5、db-config.properties

1 driver=com.mysql.jdbc.Driver
2 url=jdbc:mysql://127.0.0.1:3306/test
3 username=root
4 password=sa1234

6、获得SqlSessionFactory的工具类SessionFactoryUtil.java


 1 package com.mybatis.util;
2
3 import java.io.IOException;
4 import java.io.InputStream;
5
6 import org.apache.ibatis.io.Resources;
7 import org.apache.ibatis.session.SqlSession;
8 import org.apache.ibatis.session.SqlSessionFactory;
9 import org.apache.ibatis.session.SqlSessionFactoryBuilder;
10
11 public class SessionFactoryUtil {
12 public SqlSessionFactory getFactory() throws Exception {
13 SqlSessionFactory factory = null;
14 try {
15 InputStream is = Resources
16 .getResourceAsStream("mybatis-config.xml");
17 factory = new SqlSessionFactoryBuilder().build(is);
18 } catch (Exception e) {
19 throw e;
20 }
21 return factory;
22 }
23
24 public void close(SqlSession session) {
25 if (session != null) {
26 session.close();
27 }
28 }
29 }

7、测试类TestCustomer.java


package 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 com.mybatis.mapper.CustomerMapper;
import com.mybatis.po.Customer;
import com.mybatis.util.SessionFactoryUtil;

public class TestCustomer {

/**
* @param args
*/
public static void main(String[] args) {
SqlSession session = null;
SessionFactoryUtil util = null;
try {
util = new SessionFactoryUtil();
session = util.getFactory().openSession();

Customer cus = new Customer();
cus.setName("Tom");
cus.setGender("M");
cus.setAge(20);
cus.setAddress("USA");

session.getMapper(CustomerMapper.class).insert(cus);
session.commit();
} catch (Exception e) {
session.rollback();
e.printStackTrace();
} finally {
util.close(session);
}

try {
util = new SessionFactoryUtil();
session = util.getFactory().openSession();

Customer cus = new Customer();
cus.setName("Tom");
cus.setGender("M");
cus.setAge(22);
cus.setAddress("USA");

session.getMapper(CustomerMapper.class).update(cus);
session.commit();
} catch (Exception e) {
session.rollback();
e.printStackTrace();
} finally {
util.close(session);
}
}

}

8、结构

MyBatis初接触,布布扣,bubuko.com

时间: 2024-10-08 02:56:48

MyBatis初接触的相关文章

mybatis初入门

昨天刚接触mybatis,感觉吧. 对于我这个菜鸟来说,能学什么就是什么,完全没有感觉... 还是说说mybatis吧. mybatis的配置xml,实体类,dao. configuration.xml <?xml version="1.0" encoding="UTF-8" ?>      <!DOCTYPE configuration          PUBLIC "-//mybatis.org//DTD Config 3.0//E

【瞎折腾系列】mysql存储过程初接触

开始[瞎折腾系列],这个系列纯属瞎折腾,可能没有什么实际意义. mysql存储过程生成表: 新建一张user表,包含id, username , password , usertable字段. 然后创建存储过程: create PROCEDURE create_table() BEGIN DECLARE n int DEFAULT 0; DECLARE t_error INTEGER DEFAULT 0; DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET

cglib初接触

直接上代码吧. pom添加依赖: <dependencies> <dependency> <groupId>cglib</groupId> <artifactId>cglib-nodep</artifactId> <version>3.1</version> </dependency> <dependency> <groupId>org.ow2.asm</groupId

linux的初接触

最初衷:当自己的才能不能支配起内心的梦想时,便需要静下心来读读书.知道linux算一个巧合,但既然选择,那便努力一把.这是我的第一篇博文,也是我正式接触linux的所学.愿与大家共勉. ---Aolens 一,Linux比较常见的几个版本以及他们包含的常见的分支: 1,  Debian:ubuntu 2,  Slackware:s.u.S.E 3,  Redhat:CentOS,Fedora,HREL(centos的社区版,由centos调试一些软件是否成功来添加到HREL中         )

jfinal初接触,一个简单的文件上传例子

写了个上传的小例子. 从jfinal官网下载jfinal-1.8_demo_for_jsp.zip 然后下载jfinal-1.8-lib.zip 按要求删掉该删除的,引入一些包,之后的项目结构: DemoConfig.java中配置路由,只留下了根路径: /** * 配置路由 */ public void configRoute(Routes me) { me.add("/", CommonController.class); //me.add("/blog", B

java8 lambda表达式初接触

环境是jdk8 代码如下: package memTest; /** * Created by PC on 2014/8/5. */ public class LambdaOne { public static void test(){ new Thread(()-> System.out.print("hi") ).start(); } public static void main(String[] args) { new LambdaOne().test(); } } ja

vi初接触

它有三种模式: 一 一般模式 二 编辑模式 三 命令行模式 介绍几种比较常用的吧 -- 退出:q 写入:w 强制:! (以上可叠加) 显示行号:set nu 取消:set nonu 跳转到n行:nG 最后一行:G 第一行:gg(=1G) 向某个方向移动n个字符: 方向可以用方向键,也可以用 h(左),k(上),l(右),j(下) #向右移动5个字符 eg:5l 寻找词语:/word(向下) ?word(向下) 寻找x,y行之间的单词并替换:x,ys/word/WORD/g (加C可询问处理) #

【Centos 7】------ SaltStack 初接触

最近学习了saltstack,初接触,发现他好强大,有多强大? 说不好,我只接触了冰山一角,但已经够我喝一壶的了. 接下来,将探究saltstack的世界,能发现多少新大陆,看自己的能力啦! saltstack 介绍: Salt,一种全新的基础设施管理方式,部署轻松,在几分钟内可运行起来,扩展性好,很容易管理上万台服务器,速度够快,服务器之间秒级通讯. salt底层采用动态的连接总线,使其可以用于编配,远程执行, 配置管理等等. 一个配置管理系统,能够维护预定义状态的远程节点(比如,确保指定的报

软工实践练习-Git初接触

第一次听到Git,有点不知所云,听了实践课老师的讲解,才明白了Git作为最先进的分布式版本控制系统的重要性. 至于Git的安装和使用仍旧是自己摸索着去完成了,当然在这过程中也是遇到了很多的问题. 接下来就谈谈Git初接触的心得 1.注册 首先是要在https://github.com/上注册一个自己的账号,账号的注册就没什么可说的.填写用户名,邮箱,密码,然后sign up,这步是在机房时完成的. 2.Git的安装 下载Git,有很多的版本可以选择,我这边下载的是Git-2.5.1-64-bit