创建一个简单的mybatis案例:
案例功能:
写一个Java程序通过mybatis连接MySQL数据库并插入一条记录。
项目步骤:
1.新建一个Java项目mybatistest
2.引入jar包:
- log4j-1.2.17.jar
- mybatis-3.4.6.jar
- mysql-connector-java-5.1.29.jar
3.src下新建2个包:
- com.radish.domain
- com.radish.mapper
- test
4.新建表:
CREATE TABLE `tb_user` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`NAME` varchar(18) DEFAULT NULL,
`SEX` char(2) DEFAULT NULL,
`AGE` int(11) DEFAULT NULL,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
5.创建POJO src/com/radish/domain/User.java:
private Integer id;
private String name;
private String sex;
private Integer age;
省略构造方法和get/set方法
6.创建mybatis-config.xml
详见我的另外一篇博文
7.创建log4j.properties:
log4j.rootLogger=ERROR, stdout
log4j.logger.com.radish.mapper.UserMapper=DEBUG
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
8.创建测试类:
package Test;
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;
import com.radish.domain.User;
public class MybatisTest {
public static void main(String[] args) throws Exception{
// 读取mybatis-config.xml的配置
InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
// 初始化mybatis,创建SqlSessionFactory类的实例
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder()
.build(inputStream);
// 创建session对象
SqlSession session = sqlSessionFactory.openSession();
User user = new User("admin", "男", 26);
session.insert("com.radish.mapper.UserMapper.save", user);
session.commit();
session.close();
}
}
执行结果:
控制台输出日志信息
数据库:
- 另外提一下在练习中遇到一次preparedstatement is close 的异常提示。这是因为之前在做的时候顺手拉进了一个MySQL的3.X的驱动包,可能是这个版本的驱动包的preparedstatement类的源码实现有差异吧,以后有兴致再回去翻阅,目前是将项目中的驱动jar包改成了5.X的版本,问题解决。
项目在附录中,欢迎指点。