使用API来配置我们的MyBatis
在Mybatis(三)中我们详细讲解了mybatis-config.xml的各种元素,环境,别名,类型转换器。当然我们仅要会XML中配置他们我们也需要掌握代码的部分。
在没有xml情况下如何创建一个SqlSessionFactory?
在这里我们需要用Java API创建一个SqlSessionFactory,代码如下:
private static SqlSessionFactory sqlSessionFactory;
public static SqlSessionFactory getSqlSessionFactory(){
if (sqlSessionFactory==null){
synchronized (MyBatisSqlSessionFactory.class){
if (sqlSessionFactory==null){
DataSource dataSource= DataSourceFactory.getDataSource();//得到数据连接池
TransactionFactory transactionFactory=new JdbcTransactionFactory();//创建一个事务
Environment environment=new Environment("development",transactionFactory,dataSource);//创建一个环境
Configuration configuration=new Configuration(environment);
configuration.getTypeAliasRegistry().registerAlias("student", Student.class);//注册别名
configuration.getTypeHandlerRegistry().register(PhoneNumber.class,typehandlers.class);
configuration.addMapper(StudentMapper.class);
sqlSessionFactory=new SqlSessionFactoryBuilder().build(configuration);
}
}
}
return sqlSessionFactory;
}
对于dataSource我们有
public class DataSourceFactory {
public static DataSource getDataSource(){
String drive="com.mysql.jdbc.Driver";
String url="jdbc:mysql://localhost:3306/mybatis";
String username="root";
String password="123";
PooledDataSource pooledDataSource=new PooledDataSource(drive,url,username,password);
return pooledDataSource;
}
}
这里我们也可以使用dbcp和c3p0来创建我们的数据库连接池。
分析事务工厂
和之前在配置文件中一样事务工厂支持以下两种Tr