一、 MyBatis简述(来自官方doc)
MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以对配置和原生Map使用简单的 XML 或注解,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
二、MyBatis基本环境搭建
1.需要的jar包分析
新建Java项目MybatisTest,将mybatis和mysql的两个jar包复制到src目录下。这里是这两个jar包
选中这两个jar包,右键 选择Build Path-->add to Build path
2.建立数据库mybatisusers,在其中表user(id,userName,userPwd)。交互式操作插入一条数据(张三,"123456")用作测试用。这里id字段是主键并且设置为自动增长
3.src目录下新建配置文件mybatis-config.xml。这里可以参考文档(http://www.mybatis.org/mybatis-3/getting-started.html)来写xml文件。
这里jdbc中一些参数的设置,也是采用占位符的形式引用。下面要在外加的properties文件中配置这些值
4.建立db.properties文件并在mybatis.config.xml文件中引入这个文件
db.properties:
db.driver=com.mysql.jdbc.Driver
db.url=jdbc:mysql://localhost/mybatisusers?characterEncoding=utf8&useSSL=true
db.user=jack
db.password=12345678
在mybatis.config.xml中引入 即添加标签
5.编写数据库user表对应的实体类:User.java
这里重写toString方法是为了后边测试方便
package javastudy;
public class User {
private int id;
private String userName;
private String userPwd;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUserPwd() {
return userPwd;
}
public void setUserPwd(String userPwd) {
this.userPwd = userPwd;
}
@Override
public String toString() {
return "User [id=" + id + ", userName=" + userName + ", userPwd=" + userPwd + "]";
}
}
这里是做的根据id值去查询记录结果的sql语句
package javastudy;
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;
public class MybatisUtils {
//编写MyBatis的工具类 (读取配置文件)
public static SqlSession openSession() throws IOException{
String resource="mybatis-config.xml";
InputStream in= Resources.getResourceAsStream(resource);
SqlSessionFactory sessionFactory=new SqlSessionFactoryBuilder()
.build(in,"mybatisusers");
return sessionFactory.openSession();
}
}
建立单元测试类,写方法testSelectUser,并传进去id值为1。最后打印查询出的user,看看与初始化的(张三,"123456")是否一样。
这里要定义String statement="javastudy.userMapper.selectUser"; 用来配置到映射文件的sql语句
package Test;
import java.io.IOException;
import java.util.List;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import javastudy.MybatisUtils;
import javastudy.User;
public class MybatisTest {
SqlSession session;
String statement=null;
@Test
public void testSelectUser() throws IOException {
session=MybatisUtils.openSession();
statement="javastudy.userMapper.selectUser";
User user=session.selectOne(statement, 1);
System.out.println(user);
session.commit();
session.close();
}
}