MyBatis创建流程


1、数据库代码如下:

create database chapter3;


use chapter3;


create table t_role (
id int(12) auto_increment,
role_name varchar(60) not null,
note varchar(256) null,
primary key(id)
);


insert into t_role(role_name, note) values('role_name_1', 'note_1');

2、用到的包如下:


3、log4j.properties

log4j.rootLogger=DEBUG , stdout
log4j.logger.org.mybatis=DEBUG
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p %d %C: %m%n

4、Role.java


5、RoleMapper.java

public interface RoleMapper {
public int insertRole(Role role);
public int deleteRole(Long id);
public int updateRole(Role role);
public Role getRole(Long id);
public List findRoles(String roleName);
}

6、RoleMapper.xml


  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">




insert into t_role(role_name, note) values(#{roleName}, #{note})




delete from t_role where id= #{id}




update t_role set role_name = #{roleName}, note = #{note} where id= #{id}








7、mybatis-config.xml


  "http://mybatis.org/dtd/mybatis-3-config.dtd">

 
     
 

 
 
   
     
     
       
       
       
       
     

   

 

 
 
   
     
 

8、SqlSessionFactory.java

public class SqlSessionFactoryUtils {


private final static Class LOCK = SqlSessionFactoryUtils.class;


private static SqlSessionFactory sqlSessionFactory = null;


private SqlSessionFactoryUtils() {
}


public static SqlSessionFactory getSqlSessionFactory() {
synchronized (LOCK) {
if (sqlSessionFactory != null) {
return sqlSessionFactory;
}
String resource = "mybatis-config.xml";
InputStream inputStream;
try {
inputStream = Resources.getResourceAsStream(resource);
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
} catch (IOException e) {
e.printStackTrace();
return null;
}
return sqlSessionFactory;
}
}


//代码生成SqlSessionFactory
public static SqlSessionFactory getSqlSessionFactory2() {
synchronized (LOCK) {
//数据库连接池信息
PooledDataSource dataSource = new PooledDataSource();
dataSource.setDriver("com.mysql.jdbc.Driver");
dataSource.setUsername("root");
dataSource.setPassword("123456");
dataSource.setUrl("jdbc:mysql://localhost:3306/chapter3");
dataSource.setDefaultAutoCommit(false);
//采用MyBatis的JDBC事务方式
TransactionFactory transactionFactory = new JdbcTransactionFactory();
Environment environment = new Environment("development", transactionFactory, dataSource);
//创建Configuration对象
Configuration configuration = new Configuration(environment);
//注册一个MyBatis上下文别名
configuration.getTypeAliasRegistry().registerAlias("role", Role.class);
//加入一个映射器
configuration.addMapper(RoleMapper.class);
configuration.addMapper(RoleMapper2.class);
//使用SqlSessionFactoryBuilder构建SqlSessionFactory
sqlSessionFactory = 
   new SqlSessionFactoryBuilder().build(configuration);
return sqlSessionFactory;
}
}


public static SqlSession openSqlSession() {
if (sqlSessionFactory == null) {
getSqlSessionFactory();
}
return sqlSessionFactory.openSession();
}
}

9、Chapter3Main.java

public class Chapter3Main {
public static void main(String[] args) {
testRoleMapper();
testRoleMapper2();

}


private static void testRoleMapper() {
Logger log = Logger.getLogger(Chapter3Main.class);
SqlSession sqlSession = null;
try {
sqlSession = SqlSessionFactoryUtils.openSqlSession();
RoleMapper roleMapper = sqlSession.getMapper(RoleMapper.class);
Role role = roleMapper.getRole(1L);
log.info(role.getRoleName());
} finally {
if (sqlSession != null) {
sqlSession.close();
}
}
}

//注解SQL测试
private static void testRoleMapper2() {
Logger log = Logger.getLogger(Chapter3Main.class);
SqlSession sqlSession = null;
try {
sqlSession = SqlSessionFactoryUtils.openSqlSession();
RoleMapper2 roleMapper2 = sqlSession.getMapper(RoleMapper2.class);
Role role = roleMapper2.getRole(1L);
log.info(role.getRoleName());
} finally {
if (sqlSession != null) {
sqlSession.close();
}
}
}

}

10、测试


你可能感兴趣的:(MyBatis创建流程)