初入MyBatis框架<一>
MyBatis的优点:
比Hibernate跟底层
1.基于SQL语法,简单易学。
3.SQL语句封装在配置文件中,便于统一管理与维护,降低了程序的耦合度。
MyBatis工作流程
如图:他需要给一个javabean对象,一个配置文件(在<二>中会演示),还要给一个返回结果对象类型。
演示:
一样的在SRC下面写一个配置文件:mybatis-config.xml
负责连接数据库和配置需要的mapper
配置environments
<?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>
<!-- 配置别名 -->
<typeAliases>
<typeAlias alias="User" type="cn.hncu.domain.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?characterEncoding=UTF-8"/>
<property name="username" value="root"/>
<property name="password" value=""/>
<property name="poolMaximumActiveConnections" value="5"/><!-- 池大小 -->
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="cn/hncu/domain/User.xml"/>
<mapper resource="cn/hncu/domain/User2.xml"/>
</mappers>
</configuration>
必要的包:
1个MyBatis,2个log4j,1个数据库连接
所使用的工具类:SqlSessionUtils
public class SqlSessionUtils {
private static SqlSessionFactory sessionFactory=null;//DataSource --pool
static{
try {
InputStream in = Resources.getResourceAsStream("mybatis-config.xml");//加载配置文件
sessionFactory = new SqlSessionFactoryBuilder().build(in);
/*
这里给一种不使用Resources类加载配置文件的方法(我们自己利用classLoader以底层的方式加载):
sessionFactory = new SqlSessionFactoryBuilder().build(SqlSessionUtils.class.getClassLoader().getResourceAsStream("mybatis-config.xml") );
*/
} catch (Exception e) {
e.printStackTrace();
}
}
public static SqlSessionFactory getSessionFactory() {
return sessionFactory;
}
//Session ----Connection
public static SqlSession getSqlSession() {
return sessionFactory.openSession();
}
public static SqlSession getSqlSession(boolean boo) {
return sessionFactory.openSession(boo);//con.setAutoCommit(boo)
}
}
<二>中演示单表,<三>中演示多表