[一步是咫尺,一步即天涯]
上文中,我们已经演示了MySQL的安装配置,以及图形化管理工具的安装配置。本文,我们正式开始介绍当下流行Mybatis的使用方法,关于Mybatis的介绍,请进入传送门:Mybatis百度百科。下面开始我们的干货部分吧!
惯例,先来看看我们的准备工作有:
a.操作系统 :win7 x64
b.基本软件:MySQL,Mybatis,Spring,SQLyog,Tomcat,web基础
--------------------------------------------------------------------------------------------------------------------------------------------------------
1.使用上文我们提供给大家的管理工具,快速创建一个我们使用到的Mybatis数据库。命名为db_mybatis。
2.在第一步的基础之上,创建一张user表,具体内容如下图:
3.使用Maven创建第一个mybatis工程:mybatis01,工程结构图如下:
4.修改pom文件,具体内容如下:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.csdn,ingo</groupId> <artifactId>mybatis01</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>mybatis01</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.3.1</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.26</version> </dependency> </dependencies> </project>
5.创建数据库连接文件:jdbc.properties,具体内容如下:
jdbc.driverClassName=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/mybatis jdbc.username=root jdbc.password=12346.创建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"/> <typeAliases> <typeAlias alias="Message" type="com.java.mybatis.mybatis01.entity.Message"/> </typeAliases> <environments default="development"> <environment id="development"> <transactionManager type="JDBC" /> <dataSource type="POOLED"> <property name="driver" value="${jdbc.driverClassName}" /> <property name="url" value="${jdbc.url}" /> <property name="username" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> </dataSource> </environment> </environments> <mappers> <mapper resource="mappers/UserMapper.xml" /> </mappers> </configuration>【配置内容解释如下: 】
<typeAliases>:表示别名定义,即我们在程序中使用alias的定义,即可代表type中对应的实体对象。具体见下文中mapper文件的使用方法。
<mappers>:配置我们数据库语句文件的存放位置,这里我们只用到了一个文件,因此只配置了一个,更多用法将在后文中进行介绍。
其他配置项为通用配置,这里不再赘述。
7.创建SqlSessionFactoryUtil文件,用来连接数据库。具体内容如下:
package com.csdn.ingo.util; 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 SqlSessionFactoryUtil { private static SqlSessionFactory sqlSessionFactory; public static SqlSessionFactory getSqlSessionFactory(){ if(sqlSessionFactory==null){ InputStream inputStream=null; try{ inputStream=Resources.getResourceAsStream("mybatis-config.xml"); sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream); }catch(Exception e){ e.printStackTrace(); } } return sqlSessionFactory; } public static SqlSession openSession(){ return getSqlSessionFactory().openSession(); } }8.创建User实体类,具体内容如下:
package com.csdn.ingo.entity; import java.io.Serializable; /** *@author 作者 E-mail:ingo *@version 创建时间:2016年4月17日下午6:25:27 *类说明 */ @SuppressWarnings("serial") public class User implements Serializable{ private String id; private String password; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public User(String id, String password) { super(); this.id = id; this.password = password; } public User() { super(); // TODO Auto-generated constructor stub } }9.创建UserDao文件,具体内容如下:
package com.csdn.ingo.dao; import com.csdn.ingo.entity.User; /** *@author 作者 E-mail:ingo *@version 创建时间:2016年4月17日下午6:26:40 *类说明 */ public interface UserDao { User findUserById(String id); }
package com.csdn.ingo.main; import org.apache.ibatis.session.SqlSession; import com.csdn.ingo.dao.UserDao; import com.csdn.ingo.entity.User; import com.csdn.ingo.util.SqlSessionFactoryUtil; public class main { public static void main(String[] args) { SqlSession sqlSession=SqlSessionFactoryUtil.openSession(); UserDao userDao = sqlSession.getMapper(UserDao.class); String id = "admin"; User curUser = userDao.findUserById(id); if(curUser!=null){ System.out.println("HelloWorld:"+curUser.getId()); } } }
<?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.csdn.ingo.dao.UserDao"> <select id="findUserById" parameterType="String" resultType="User"> select * from sysuser where id=#{id} </select> </mapper>
namespace:必须与UserDao的全路径想匹配,这样才能使的接口与sql文件一一对应。
id:现在必须与接口中的方法名称一致。后续我们将介绍高级用法,是mapper文件更加规范化。届时将介绍id的另一种实现方式,敬请期待。
parameterType:传入参数类型,对于基本类型,可以使用Integer,String等封装类型直接使用。复杂类型,多参数还需要将数据封装成对象才能使用,具体用法见后文中的介绍。
resultType:结果返回值的类型,本例返回的结果是一个User对象,这个对象使用了我们前文介绍的别名。如果未使用别名配置,或者上下文中存在多个User实体类,最好使用全路径的方式进行配置,方式发生错误。
12.测试方法:运行main方法即可。观察控制台输出。
--------------------------------------------------------------------------------------------------------------------------------------------------------
至此,Mybatis最入门---HelloWorld结束
参考资料:
官方文档:http://www.mybatis.org/mybatis-3/zh/index.html