mybatis支持普通sql语句查询,跟hibernate一样是后台持久化框架。
先创建一个web项目。导入mybatis的jar包,还有连接mysql数据库的jar包。
创建数据库省略。。。
代码:
实体类:User.java:
package com.mfc.entity;
/*
* 实体类
* */
public class User {
private int id;
private String userName;
private int userAge;
private String userAddress;
//构造方法以及set,get方法省略...
}
User.xml:
本xml主要用于定义各种SQL语句,还有sql语句需要的参数和返回类型等
<?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="com.mfc.entity.User">
<select id="selectUserByID" parameterType="int" resultType="User">
select * from user where id = #{id}
</select>
</mapper>
Configuration.xml:
本xml用于连接数据库,还有Java类的别名等。
<?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>
<!-- Configuration.xml是 mybatis 用来建立 sessionFactory 用的,
里面主要包含了数据库连接相关东西,还有 java 类所对应的别名,比如
<typeAlias alias="User" type="com.yihaomen.mybatis.model.User"/>
这个别名非常重要,你在 具体的类的映射中,
比如User.xml 中 resultType 就是对应这里的。要保持一致,当然这里的 resultType 还有另外单独的定义方式-->
<typeAliases>
<typeAlias alias="User" type="com.mfc.entity.User"/>
</typeAliases>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://127.0.0.1:3306/mybatis" />
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<!--要映射的类的xml配置文件-->
<mappers>
<mapper resource="com/mfc/entity/User.xml"/>
</mappers>
</configuration>
测试类:Test.java:
package com.mfc.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 com.mfc.entity.User;
/**
* 对mybatis的测试类
*/
public class Test {
private static SqlSessionFactory sqlSessionFactory;
private static Reader reader;
static {
try {
reader = Resources.getResourceAsReader("Configuration.xml");
sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
} catch (IOException e) {
e.printStackTrace();
}
}
public static SqlSessionFactory getSession() {
return sqlSessionFactory;
}
public static void main(String[] args) {
SqlSession session = sqlSessionFactory.openSession();
try {
User user = (User) session.selectOne("com.mfc.entity.User.selectUserByID", 1);
System.out.println(user.getUserAddress());
System.out.println(user.getUserName());
} finally {
session.close();
}
}
}
经测试,可以打印在控制台上