首页 > 代码库 > mybatis入门
mybatis入门
1.1. 什么是 MyBatis ?
MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除
了几乎所有的 JDBC 代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML
或注解用于配置和原始映射,将接口和 Java的 POJOs(Plan Old Java Objects,普通的 Java
对象)映射成数据库中的记录。
1.2. 入门案例
每一个 MyBatis 的应 用程序 都以一 个 SqlSessionFactory 对象的 实例为 核心。
SqlSessionFactory 对 象 的 实 例 可 以 通 过SqlSessionFactoryBuilder 对象 来 获 得 。
SqlSessionFactoryBuilder 对象可以从 XML 配置文件,或从Configuration 类的习惯准备的实
例中构建 SqlSessionFactory 对象。
1.2.1. Mysql数据库中新建表
#数据库脚本 USE mysql #创建表 CREATE TABLE users ( userId INTEGER AUTO_INCREMENT PRIMARY KEY, userName VARCHAR(20) NOT NULL, userAge INTEGER NOT NULL
) #加入测试数据 INSERT INTO users(userName,userAge) VALUES(‘张三‘,22); INSERT INTO users(userName,userAge) VALUES(‘李四‘,33); INSERT INTO users(userName,userAge) VALUES(‘王五‘,44);
SELECT * FROM users |
1.2.2. 新建java工程,引入jar包
mysql-connector-java-5.1.7-bin.jar
mybatis-3.2.7.jar
工程目录
1.2.3. 新建实体类users.java
package com.morris.mybatis.entity;
public class Users {
private IntegeruserId;
private StringuserName;
private IntegeruserAge;
public Integer getUserId() { returnuserId; }
public void setUserId(Integer userId) { this.userId =userId; }
public String getUserName() { returnuserName; }
public void setUserName(String userName) { this.userName =userName; }
public Integer getUserAge() { returnuserAge; }
public void setUserAge(Integer userAge) { this.userAge =userAge; }
public Users(IntegeruserId, String userName, IntegeruserAge) { super(); this.userId =userId; this.userName =userName; this.userAge =userAge; }
public Users() { super(); // TODO Auto-generated constructor stub }
@Override public String toString() { return"Users [userId=" + userId + ", userName=" + userName + ", userAge=" +userAge + "]"; }
}
|
1.2.4. 在src新建配置文件configration.xml
<?xmlversion="1.0"encoding="UTF-8"?> <!DOCTYPEconfiguration PUBLIC"-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration>
<!-- 配置mybatis的数据库连接 --> <environmentsdefault="development"> <environmentid="development"> <transactionManagertype="JDBC"/> <dataSourcetype="POOLED"> <propertyname="driver"value="com.mysql.jdbc.Driver"/> <propertyname="url"value="jdbc:mysql://127.0.0.1:3306/mysql"/> <propertyname="username"value="root"/> <propertyname="password"value="root"/> </dataSource> </environment> </environments>
<!-- 引入映射文件 --> <mappers> <mapperresource="com/morris/mybatis/entity/UsersMapper.xml"/> </mappers> </configuration> |
1.2.5. 在与实体相同目录下新建映射文件UsersMapper.xml
<?xmlversion="1.0"encoding="UTF-8"?> <!DOCTYPEmapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mappernamespace="com.morris.mybatis.entity.Users">
<selectid="selectUserByID"parameterType="java.lang.Integer"resultType="com.morris.mybatis.entity.Users"> select * from users where userId = #{id} </select> </mapper> |
1.2.6. 测试
package com.morris.mybatis.entity;
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;
public class Test {
public static void main(String[] args) throws Exception {
Reader reader = Resources.getResourceAsReader("configuration.xml"); SqlSessionFactory sqlSessionFactory =new SqlSessionFactoryBuilder() .build(reader);
SqlSession session = sqlSessionFactory.openSession();
String sql = "com.morris.mybatis.entity.Users.selectUserByID";
Users user = session.selectOne(sql, 1);
System.out.println(user);
}
} |
1.2.7. 结果
Users[userId=1, userName=张三, userAge=22]
mybatis入门