需求:
1、搭建mybatis的入门级别的运行环境。
软件环境:
1、eclipse、jdk1.6、mybatis3.2、mysql
注:高级别的版本需要jdk1.7。
步骤:
1、建立数据库mybatis,创建user表,表结构如下
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(50) DEFAULT NULL,
`age` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
插入一条测试数据。这个符合自己为原则。
2、在eclipse环境下搭建
目录结构
MybatisTest
src
|------cn.bj.mybatis.model
|---User.java
|---User.xml
|-----Configuration.xml
test
|------cn.bj.mybatis.test
|---MybatisTest.java
lib
|---log4j-1.2.17.jar
|---mybatis-3.2.0.jar
|---mysql-connectionor-java-5.0.4-bin.jar
按上述目录结构建立。不要问为什么,等运行成功你可以随意的改变的结构,当然你得掌握先。下面看各个文件的详细情况,在这儿贴出源代码:
User.java
package cn.bj.mybatis.model;
public class User {
private int id;
private String username;
private int age;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
User.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="cn.bj.mybatis.models.UserMapper">
<select id="selectUser" resultType="User">
select * from user where id = #{id}
</select>
</mapper>
Configuration.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>
<typeAliases>
<typeAlias alias="User" type="cn.bj.mybatis.model.User"/>
</typeAliases>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mybatis"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="cn/bj/mybatis/model/User.xml"/>
</mappers>
</configuration>
测视类MybatisTest.java
package cn.bj.mybatis.test;
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;
import cn.bj.mybatis.model.User;
public class MybatisTest {
public static void main(String[] args){
SqlSessionFactory sqlSessionFactory = null;
SqlSession session = null;
String resource = "Configuration.xml";
InputStream inputStream;
try {
inputStream = Resources.getResourceAsStream(resource);
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
session = sqlSessionFactory.openSession();
System.out.println(session);
User user = (User)session.selectOne("cn.bj.mybatis.models.UserMapper.selectUser",1);
System.out.println(user.getId());
System.out.println(user.getUsername());
} catch (IOException e) {
e.printStackTrace();
}finally{
if(session != null){
session.close();
}
}
}
}
运行的结果为
org.apache.ibatis.session.defaults.DefaultSqlSession@1ccce3c
1
helloworld
到这儿了,说明你搭建的基本环境成功了。该问问内容了好的。下面讲一下
Configuration.xml这个文件的重要性,这个文件是mybatis的重要的全局的配置文件(有数据库的连接配置信息),当然名字可以改的。不一定要唯一的。这就是开始时说不要问原因的原因。
如果你学过hibernate的话,在这儿感觉别扭的应该是User.xml这个文件。这个是实体的配置文件,在hibernate中应该名称为User.hbm.xml。记住就好了。因为mybatis和hibernate比较来说它是半自动的,半自动在哪儿呢?就在这儿了,(sql要手工写的,这些保证了mybatis在编写复杂sql语句的高效性了)。