iBatis是apche的一個開源項目,2010年遷移到google code後改名為MyBatis,2013年前已到github.MyBatis是一個基於java的持久層框架,與hibernate相比更加簡單。
工程目錄:
MyBatis是一個持久層框架,也就是和數據庫打交道的,mysql新建一個數據庫用來做測試。
create database book
建立一張user表:
Create Table: CREATE TABLE `User` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`username` varchar(20) NOT NULL,
`passWord` varchar(20) NOT NULL,
PRIMARY KEY (`id`)
)
插入幾條記錄:
+----+----------+------------+
| id | username | passWord |
+----+----------+------------+
| 1 | 小華 | xiaohua |
| 2 | 柯南 | 666666 |
| 3 | 慕白 | 123456 |
| 4 | 小明 | xiaoming12 |
+----+----------+------------+
這樣數據庫准備好了,也可以在mysql圖形界面中操作。
在eclipse中新建java project,命名為Mybatis HelloWorld
單擊工程名右鍵->build path->config build path->add external jars,加入以下jar包mysql-connector-java-5.1.38-bin.jar
、 mybatis-3.2.8.jar
、asm-3.3.1.jar
、cglib-2.2.2.jar
、commons-logging-1.1.1.jar
、javassist-3.17.1-GA.jar
、log4j-1.2.17.jar
、log4j-api-2.0.2.jar
、log4j-core-2.0.2.jar
、slf4j-api-1.7.5.jar
、slf4j-log4j12-1.7.5.jar
在src目錄下添加log4j.properties,log4j可用來打印sql查詢語句:
log4j.rootLogger=DEBUG, CONSOLE
#Console
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.logger.java.sql.ResultSet=INFO
log4j.logger.org.apache=INFO
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
新建ucas.book.map、ucas.book.pojo、ucas.book.test包
在ucas.book.pojo包下新建User實體:
package ucas.book.pojo;
public class User {
private int id;
private String username;
private String password;
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 getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
在ucas.book.map包下加入mybatis.xml和UserMapper.xml:
數據庫連接和相關配置信息寫在mybatis.xml裡面:
sql代碼寫在UserMapper.xml中:
中寫的是通過id查詢記錄的sql語句。
package ucas.book.test;
import java.io.IOException;
import java.io.Reader;
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 ucas.book.pojo.User;
public class TestUser {
public static void main(String[] args) {
String resource = "ucas/book/map/mybatis.xml";
Reader reader = null;
SqlSession session;
try {
reader = Resources.getResourceAsReader(resource);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader);
session = factory.openSession();
User user = session.selectOne("getUserById", 1);
System.out.println("\nusername:" + user.getUsername());
session.close();
}
}
結果: