新建MyBatis项目并详细配置
1、创建Java web project
2、导入包:log4j、mybatis、mysql-connector
3、在src目录下配置文件
(1)jdbc.properties
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/db_test
username=root
password=hanxue
(2)log4j.properties
### 设置Logger输出级别和输出目的地 ###
log4j.rootLogger=debug,stdout
### 把日志信息输出到控制台 ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
#log4j.appender.stdout.Target=System.err
log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout
### 把日志信息输出到文件:jbit.log ###
#log4j.appender.logfile=org.apache.log4j.FileAppender
#log4j.appender.logfile.File=jbit.log
#log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
#log4j.appender.logfile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %F %p %m%n
###显示SQL语句部分
log4j.logger.com.ibatis=DEBUG
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=DEBUG
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=DEBUG
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
(3)mybatis-config.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="jdbc.properties"></properties>
<!-- 引入model的别名 -->
<typeAliases>
<!-- <typeAlias alias="User" type="com.soleil.model.User"/> -->
<package name="com.soleil.model"/>
</typeAliases>
<environments default="development">
<environment id="development">
<!-- 事物管理 -->
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${driver}" />
<property name="url" value="${url}" />
<property name="username" value="${username}" />
<property name="password" value="${password}" />
</dataSource>
</environment>
</environments>
<!-- 定义映射文件 -->
<mappers>
<package name="com.soleil.mapper"/>
</mappers>
</configuration>
4、数据库准备
mysql> desc user_inf;
+----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id | int(11) | NO | PRI | NULL | |
| password | varchar(15) | NO | | NULL | |
| username | varchar(15) | NO | | NULL | |
+----------+-------------+------+-----+---------+-------+
3 rows in set (0.01 sec)
mysql> select * from user_inf;
+----+----------+----------+
| id | password | username |
+----+----------+----------+
| 1 | manager | summer |
| 2 | admin | spring |
+----+----------+----------+
2 rows in set (0.00 sec)
5、新建com.soleil.model包并新建model类User
package com.soleil.model;
public class User {
private int id;
private String passWord;
private String userName;
public User() {
}
public User(int id, String passWord, String userName) {
super();
this.id = id;
this.passWord = passWord;
this.userName = userName;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getPassWord() {
return passWord;
}
public void setPassWord(String passWord) {
this.passWord = passWord;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
@Override
public String toString() {
return "User [id=" + id + ", passWord=" + passWord + ", userName=" + userName + "]";
}
}
6、新建com.soleil.mapper包并新建UserMapper.xml
<?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.soleil.mapper.UserMapper">
<select id="selectUser" parameterType="int" resultType="User">
select * from user_inf where id = #{id}
</select>
</mapper>
7、在com.soleil.mapper包中新建Usermapper Interface
package com.soleil.mapper;
import com.soleil.model.User;
public interface UserMapper {
public User selectUser(int id);
}
8、com.soleil.util包并新建MyBatisUtil类
package com.soleil.util;
import java.io.IOException;
import java.io.InputStream;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class MyBatisUtil {
private static SqlSessionFactory sqlSessionFactory = null;
// 单例
static {
InputStream inputStream;
try {
inputStream = Resources.getResourceAsStream("mybatis-config.xml");
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
} catch (IOException e) {
e.printStackTrace();
}
}
public MyBatisUtil() {}
/**
* 得到sqlSessionFactory的实例
* @return
*/
public static SqlSession getSqlSession() {
return sqlSessionFactory.openSession();
}
}
9、com.soleil.Dao包并新建UserDao
package com.soleil.dao;
import org.apache.ibatis.session.SqlSession;
import com.soleil.mapper.UserMapper;
import com.soleil.model.User;
import com.soleil.util.MyBatisUtil;
public class UserDao implements UserMapper {
@Override
public User selectUser(int id) {
User user = null;
SqlSession session = MyBatisUtil.getSqlSession();
try {
UserMapper mapper = session.getMapper(UserMapper.class);
user = mapper.selectUser(id);
} finally {
session.close();
}
return user;
}
}
10、JUnit测试
package com.soleil.mapper;
import org.junit.Test;
import com.soleil.dao.UserDao;
import com.soleil.model.User;
public class UserMapperTest {
private UserDao userDao;
@Test
public void testSelectUser() {
userDao = new UserDao();
User user = userDao.selectUser(1);
System.out.println(user.toString());
}
}
11、测试结果
在控制台打印
User [id=1, passWord=manager, userName=summer]
最终项目结构如下: