Mybatis使用示例
AdminMapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"
"http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">
<!-- AdminMapper.xml 中的namespace
与 AdminMapper 接口名一样 -->
<mapper
namespace="cn.tedu.mapper.AdminMapper">
<!-- id 是方法名,resultType是返回值中
对象的类型 如:List<Admin> -->
<select id="findAll"
resultType="cn.tedu.entity.Admin">
select * from Admin_info_lhh
</select>
</mapper>
SqlMapperConfig.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//ibatis.apache.org//DTD
Config 3.0//EN"
"http://ibatis.apache.org/dtd/ibatis-3-config.dtd">
<!-- SqlMapConfig -->
<configuration>
<environments default="environment">
<environment id="environment">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver"
value="oracle.jdbc.OracleDriver" />
<property name="url"
value="jdbc:oracle:thin:@192.168.201.216:1521:orcl"/>
<property name="username" value="tom" />
<property name="password" value="open123" />
</dataSource>
</environment>
</environments>
<!-- mappers 指向子 Sql 映射关系配置文件 -->
<mappers>
<!-- 有多个子配置文件!
每个表对应一个子Mapper.xml文件
每个Mapper.xml文件用于登记SQL语句-->
<mapper resource="AdminMapper.xml" />
<!--
<mapper resource="CostMapper.xml" />
-->
</mappers>
</configuration>
Admin.java
package cn.tedu.entity;
import java.sql.Timestamp;
/**
* 实体类
*
*/
public class Admin {
private Integer adminId;
private String adminCode;
private String password;
private String name;
private String telephone;
private String email;
private Timestamp enrolldate;
public Admin() {
}
public Admin(Integer adminId, String adminCode, String password,
String name, String telephone, String email, Timestamp enrolldate) {
super();
this.adminId = adminId;
this.adminCode = adminCode;
this.password = password;
this.name = name;
this.telephone = telephone;
this.email = email;
this.enrolldate = enrolldate;
}
@Override
public String toString() {
return "Admin [adminCode=" + adminCode + ", adminId=" + adminId
+ ", email=" + email + ", enrolldate=" + enrolldate + ", name="
+ name + ", password=" + password + ", telephone=" + telephone
+ "]";
}
public Integer getAdminId() {
return adminId;
}
public void setAdminId(Integer adminId) {
this.adminId = adminId;
}
public String getAdminCode() {
return adminCode;
}
public void setAdminCode(String adminCode) {
this.adminCode = adminCode;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getTelephone() {
return telephone;
}
public void setTelephone(String telephone) {
this.telephone = telephone;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public Timestamp getEnrolldate() {
return enrolldate;
}
public void setEnrolldate(Timestamp enrolldate) {
this.enrolldate = enrolldate;
}
}
AdminMapper.java
package cn.tedu.mapper;
import java.util.List;
import cn.tedu.entity.Admin;
/**
* 将方法名声明 findAll 声明出来!
* findAll 与 AdminMapper.xml 中的方法名id一致
*/
public interface AdminMapper {
/**
* <select id="findAll">
*/
List<Admin> findAll();
}
TestCase.java
package cn.tedu.test;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;
import cn.tedu.entity.Admin;
import cn.tedu.mapper.AdminMapper;
public class TestCase {
@Test
public void testFindAll() throws IOException{
//调用 findAll 方法执行 SQL 语句
//得到findAll方法,先得到AdminMapper接口
//AdminMapper 接口需要 利用 SqlSession创建
// SqlSession 需要用SqlSessionFactory创建
// SqlSessionFactory 需要用
// SqlSessionFactoryBuilder 创建
SqlSessionFactoryBuilder builder=
new SqlSessionFactoryBuilder();
//MyBatis 提供了一个方便的API:从包中
// 读取配置文件的流(可以替换为文件流)
// Reader in = Resources
// .getResourceAsReader(
// "SqlMapConfig.xml" );
// int c;
// while((c=in.read())!=-1){
// c = in.read();
// System.out.print((char)c);
// }
InputStream in = getClass()
.getClassLoader()
.getResourceAsStream(
"SqlMapConfig.xml");
SqlSessionFactory factory =
builder.build(in);
SqlSession session =
factory.openSession();
AdminMapper mapper = session
.getMapper(AdminMapper.class);
List<Admin> all = mapper.findAll();
//System.out.println(all);
for(Admin admin: all){
System.out.println(admin);
}
session.close();
}
}