sqlMapConfig.xml
<?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>
<properties resource="db.properties" />
<environments default="MySQL">
<environment id="MySQL">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="pers/goodwin/mybatis/mapper/UserMapper.xml" />
</mappers>
</configuration>
log4j.properties
#Global configuration
log4j.rootLogger=DEBUG,stdout
#Console configuration
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.layout.ConversionPattern=%5p [%t] - %m%n
db.properties
#database configuration information
jdbc.driver = com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/db_ssm_mybatis?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8
jdbc.username=root
jdbc.password=123456
User
package pers.goodwin.mybatis.bean;
public class User {
private Integer u_id;
private String u_username;
private String u_password;
private Integer u_gender;
private Integer u_cid;
public Integer getU_id() {
return u_id;
}
public void setU_id(Integer u_id) {
this.u_id = u_id;
}
public String getU_username() {
return u_username;
}
public void setU_username(String u_username) {
this.u_username = u_username;
}
public String getU_password() {
return u_password;
}
public void setU_password(String u_password) {
this.u_password = u_password;
}
public Integer getU_gender() {
return u_gender;
}
public void setU_gender(Integer u_gender) {
this.u_gender = u_gender;
}
public Integer getU_cid() {
return u_cid;
}
public void setU_cid(Integer u_cid) {
this.u_cid = u_cid;
}
@Override
public String toString() {
return "User [u_id=" + u_id + ", u_username=" + u_username + ", u_password=" + u_password + ", u_gender="
+ u_gender + ", u_cid=" + u_cid + "]";
}
}
UserDao
package pers.goodwin.mybatis.dao;
import pers.goodwin.mybatis.bean.User;
public interface UserDao {
public User getUserById(Integer id);
}
UserDaoImpl
package pers.goodwin.mybatis.dao;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import pers.goodwin.mybatis.bean.User;
public class UserDaoImpl implements UserDao {
private SqlSessionFactory sqlSessionFactory;
public UserDaoImpl(SqlSessionFactory sqlSessionFactory) {
this.sqlSessionFactory = sqlSessionFactory;
}
@Override
public User getUserById(Integer id) {
SqlSession sqlSession = sqlSessionFactory.openSession();
return sqlSession.selectOne("UserMapper.selectUserById", id);
}
}
UserDaoTest
package pers.goodwin.mybatis.test;
import java.io.IOException;
import java.io.InputStream;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;
import pers.goodwin.mybatis.bean.User;
import pers.goodwin.mybatis.dao.UserDao;
import pers.goodwin.mybatis.dao.UserDaoImpl;
public class UserDaoTest {
private static SqlSessionFactory sqlSessionFactory;
static {
InputStream inputStream;
try {
inputStream = Resources.getResourceAsStream("sqlMapConfig.xml");
SqlSessionFactoryBuilder ssb = new SqlSessionFactoryBuilder();
sqlSessionFactory = ssb.build(inputStream);
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
@Test
public void DaoTest() {
UserDao dao = new UserDaoImpl(sqlSessionFactory);
User user = dao.getUserById(1);
System.out.println(user);
}
}
结果
Logging initialized using 'class org.apache.ibatis.logging.slf4j.Slf4jImpl' adapter.
PooledDataSource forcefully closed/removed all connections.
PooledDataSource forcefully closed/removed all connections.
PooledDataSource forcefully closed/removed all connections.
PooledDataSource forcefully closed/removed all connections.
Opening JDBC Connection
Created connection 921420643.
Setting autocommit to false on JDBC Connection [com.mysql.jdbc.JDBC4Connection@36ebc363]
==> Preparing: select * from t_user where u_id = ?
==> Parameters: 1(Integer)
<== Total: 1
User [u_id=1, u_username=老王, u_password=12345, u_gender=0, u_cid=1]