开发环境:
windows7+jdk1.8+tomcat8.0
开发工具:
eclipse+sqlyog
数据库:
mysql数据库
搭建步骤
【1创建一个java工程,如下:】java项目工程名这里定义为【MybaitsTest】
【2、完整项目文件结构】
创建完成之后的目录结构如图。
【3、准备两个必要的jar文件,自己有的可以用自己项目的,没有的,下面提供连接直接下载】
mysql-connector-java-5.1.21-bin.jar
mybatis-3.2.3.jar
【4、对于jar文件可以根据自己的习惯去处理,这里分别包装了两个jar类库,分别放到类库里面】
选中你刚才新建的java项目,然后
“next”
找到你的jar文件,然后ok
按照同样的方法添加另一个类库
加完之后“finish”→“ok”
【4、创建测试数据库和表】
创建表:
CREATE TABLE `user`(
`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`name` VARCHAR(64) NOT NULL DEFAULT '',
`team` VARCHAR(64) NOT NULL DEFAULT '',
`position` VARCHAR(64) NOT NULL DEFAULT '',
`number` INT(10),
PRIMARY KEY (`id`)
)ENGINE=INNODB AUTO_INCREMENT=2
DEFAULT CHARSET gbk;
新增测试数据表:
INSERT INTO `user` VALUES('1','麦迪','火箭','得分后卫','1');
INSERT INTO `user` VALUES('2','欧文','骑士','控球后卫','2');
INSERT INTO `user` VALUES('3','韦德','热火','得分后卫','3');
【5、创建user对应的java类文件】
加set,get方法
ps:快速set,get的方法
定义完了上面的属性之后:
①操作快捷键:shift+alt+s+r
②再操作快捷键:shift+alt+a
③ok完成
【6、创建user对应的xml映射文件】
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--
该文件的作用就是定义各种sql语句,以及这些语句的参数,以及要返回的类型等等。
-->
<mappernamespace="UserMapper">
<selectid="getUserById"parameterType="int"resultType="User">
SELECT * FROM USER WHERE ID =#{id}
</select>
</mapper>
【7、创建configure.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>
<typeAliasalias="User"type="com.crayon.test.models.User"/>
</typeAliases>
<environmentsdefault="development">
<environmentid="development">
<transactionManagertype="JDBC"/>
<dataSourcetype="POOLED">
<propertyname="driver"value="com.mysql.jdbc.Driver"/>
<propertyname="url"value="jdbc:mysql://127.0.0.1:3306/mybatistest"/>
<propertyname="username"value="root"/>
<propertyname="password"value="0908"/>
</dataSource>
</environment>
</environments>
<!-- 这里配置要映射的类的xml文件 -->
<mappers>
<mapperresource="com/crayon/test/models/User.xml"/>
</mappers>
</configuration>
ps:该配置文件的作用:
配置文件是mybatis用来建立 sessionFactory 主要包括了数据库连接相关的内容还有java类对应的别名,
比如:<typeAlias
alias="User" type="com.crayon.test.models.User"/> 这个别名非常重要,在具体的类的映射中,
比如:User.xml
中 resultType 就是对应这个。要保持一致,这里的 resultType 还有另外单独的定义方式,后面学习到我们再详细介绍说明。
【8、测试】
package com.crayon.test;
import java.io.IOException;
import java.io.Reader;
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.crayon.test.models.User;
/**
*
* @ClassName: MyBatisTest
* @Description: TODO(测试工具类)
* @author Crayon
* @date 2016年4月22日 下午4:27:50
*
*/
publicclassMyBatisTest{
publicstaticSqlSessionFactory sf ;
publicstaticReader rd ;
static{
try{
rd =Resources.getResourceAsReader("config/Configure.xml");
sf =newSqlSessionFactoryBuilder().build(rd);
}catch(IOException e){
// TODO Auto-generated catch block
e.printStackTrace();
}
}
publicstaticSqlSessionFactory getSession(){
return sf ;
}
publicstaticvoid main(String[] args){
SqlSession session = sf.openSession();
try{
//到对应的user.xml文件中去找
User u = session.selectOne("UserMapper.getUserById",1);
//输出我们要的结果
if(u!=null){
String userInfo = u.getTeam()+"当家球星"+"名字:"+ u.getName()+"球衣号码:【"+u.getNumber()+"】场上位置司职:"+u.getPosition();
System.out.println(userInfo);
}
}catch(Exception e){
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(session!=null){
session.close();
}
}
}
}