2011年6月iBatis 更名为 MyBatis,从 iBatis 到 MyBatis,不只是名称上的变化,MyBatis 提供了更为强大的功能,同时并没有损失其易用性,相反,在很多地方都借助于 JDK 的泛型和注解特性进行了简化。所以你懂的,开始学习就从MyBatis吧.
例子使用MyBatis+Oracle实现一个用户表的查询,如下:
①数据库 在MySQL中,test数据库下,简历user表,字段:iid,ifullname,ipassword,建表语句略。
②需导入的包 只有两个: mybatis-3.4.4.jar 和 ojdbc14.jar(JDBC包)
③目录结构 采用最简单的结构,com.mybatis包下有且仅有四个文件 configuration.xml user.xml User.java Test.java
④mybatis配置文件configuration.xml,
[xml]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
<?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>
<typeAlias alias= "User" type= "com.mybatis.User" ></typeAlias>
</typeAliases>
<environments default = "development" >
<environment id= "development" >
<transactionManager type= "JDBC" ></transactionManager>
<dataSource type= "POOLED" >
<property name= "driver" value= "oracle.jdbc.driver.OracleDriver" />
<property name= "url" value= "jdbc:oracle:thin:@192.168.0.87:1526:entegor" />
<property name= "username" value= "ideal" />
<property name= "password" value= "ideal" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource= "user.xml" />
</mappers>
</configuration>
|
User表sql文件User.xml,
[xml]
1
2
3
4
5
6
7
8
9
10
|
<?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= "User" >
<select id= "selectUser" parameterType= "int" resultType= "User" >
SELECT * FROM user WHERE id = #{id}
</select>
<select id= "selectUsers" resultType= "User" >
SELECT * FROM user
</select>
</mapper>
|
表结构文件User.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
package com.mybatis;
public class User {
private int iid;
private String ifullname;
private String iloginname;
private String ipassword;
public User(){}
public User( int id, String name) {
this .iid = id;
this .ifullname = name;
}
public String getIfullname() {
return ifullname;
}
public int getIid() {
return iid;
}
public void setIid( int iid) {
this .iid = iid;
}
public void setIfullname(String ifullname) {
this .ifullname = ifullname;
}
public String getIloginname() {
return iloginname;
}
public void setIloginname(String iloginname) {
this .iloginname = iloginname;
}
public String getIpassword() {
return ipassword;
}
public void setIpassword(String ipassword) {
this .ipassword = ipassword;
}
}
|
⑦测试用例Test.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
package com.controller;
import java.io.IOException;
import java.io.Reader;
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 com.mybatis.User;
public class Test {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
String resource = "configuration.xml" ;
Reader reader = Resources.getResourceAsReader(resource);
SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(reader);
SqlSession session = ssf.openSession();
try {
User user = session.selectOne( "selectUser" , 2 );
System.out.println(user.getIfullname());
System.out.println(user);
System.out.println( "--------------分隔线---------------" );
List<User> users = session.selectList( "selectUsers" );
for ( int i= 0 ; i<users.size(); i++) {
System.out.println(users.get(i).getIfullname());
}
} catch (Exception e) {
e.printStackTrace();
} finally {
session.close();
}
}
}
|
原文链接:http://www.cnblogs.com/symbol8888/archive/2017/04/21/6742513.html